library;
//
// Problems in library:
//
// pkg/front_end/testcases/general_nnbd_opt_out/invalid_type.dart:9:5: Error: Expected identifier, but got 'this'.
//     this.bar();
//     ^^^^
//
// pkg/front_end/testcases/general_nnbd_opt_out/invalid_type.dart:14:12: Error: 'Missing' isn't a type.
//   (null as Missing).bar();
//            ^^^^^^^
//
// pkg/front_end/testcases/general_nnbd_opt_out/invalid_type.dart:15:8: Error: The method 'bar' isn't defined for the class 'Null'.
// Try correcting the name to the name of an existing method, or defining a method named 'bar'.
//   null.bar();
//        ^^^
//
import self as self;
import "dart:core" as core;

class C extends core::Object {
  synthetic constructor •() → self::C*
    : super core::Object::•()
    ;
  static method foo() → dynamic {
    invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/invalid_type.dart:9:5: Error: Expected identifier, but got 'this'.
    this.bar();
    ^^^^".bar();
  }
}
static method test() → dynamic {
  (null as invalid-type).bar();
  invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/invalid_type.dart:15:8: Error: The method 'bar' isn't defined for the class 'Null'.
Try correcting the name to the name of an existing method, or defining a method named 'bar'.
  null.bar();
       ^^^";
}
static method main() → dynamic {}
