library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/continue_inference_after_error.dart:10:3: Error: A prefix can't be used as an expression.
//   lib(new C().missing());
//   ^^^
//
// pkg/front_end/testcases/general/continue_inference_after_error.dart:10:15: Error: The method 'missing' isn't defined for the class 'C'.
//  - 'C' is from 'pkg/front_end/testcases/general/continue_inference_after_error.dart'.
// Try correcting the name to the name of an existing method, or defining a method named 'missing'.
//   lib(new C().missing());
//               ^^^^^^^
//
import self as self;
import "dart:core" as core;

import "org-dartlang-testcase:///continue_inference_after_error_lib.dart" as lib;

class C extends core::Object {
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
}
static method test() → dynamic {
  invalid-expression "pkg/front_end/testcases/general/continue_inference_after_error.dart:10:3: Error: A prefix can't be used as an expression.
  lib(new C().missing());
  ^^^" in let final core::Object? #t1 = invalid-expression "pkg/front_end/testcases/general/continue_inference_after_error.dart:10:15: Error: The method 'missing' isn't defined for the class 'C'.
 - 'C' is from 'pkg/front_end/testcases/general/continue_inference_after_error.dart'.
Try correcting the name to the name of an existing method, or defining a method named 'missing'.
  lib(new C().missing());
              ^^^^^^^" in new self::C::•(){<unresolved>}.missing() in null;
}
static method main() → dynamic {}

library /*isNonNullableByDefault*/;
import self as self2;
