library;
//
// Problems in library:
//
// pkg/front_end/testcases/regress/issue_34498.dart:8:3: Error: 'lib.MyClass' can't be used as a type because 'lib' doesn't refer to an import prefix.
//   lib.MyClass get lib => null; // (1)
//   ^^^^^^^^^^^
//
// pkg/front_end/testcases/regress/issue_34498.dart:10:3: Error: 'foo' isn't a type.
//   foo foo() {}
//   ^^^
// pkg/front_end/testcases/regress/issue_34498.dart:10:7: Context: This isn't a type.
//   foo foo() {}
//       ^^^
//
// pkg/front_end/testcases/regress/issue_34498.dart:12:3: Error: Type 'Missing' not found.
//   Missing bar() {}
//   ^^^^^^^
//
// pkg/front_end/testcases/regress/issue_34498.dart:20:3: Error: Can't use type arguments with type variable 'T'.
// Try removing the type arguments.
//   T<String> foo() {}
//   ^
//
import self as self;
import "dart:core" as core;

class A extends core::Object {
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
  get lib() → invalid-type
    return null;
  method foo() → invalid-type {}
  method bar() → invalid-type {}
}
class B extends self::A {
  synthetic constructor •() → self::B
    : super self::A::•()
    ;
}
class C<T extends core::Object = dynamic> extends core::Object {
  synthetic constructor •() → self::C<self::C::T>
    : super core::Object::•()
    ;
  method foo() → invalid-type {}
}
static final field self::A a = null;
static method main() → dynamic {}
