library;
//
// Problems in library:
//
// pkg/front_end/testcases/general_nnbd_opt_out/check_deferred_type_declaration.dart:11:3: Error: The type 'C' is deferred loaded via prefix 'lib' and can't be used as a type annotation.
//  - 'C' is from 'pkg/front_end/testcases/general_nnbd_opt_out/deferred_lib.dart'.
// Try removing 'deferred' from the import of 'lib' or use a supertype of 'C' that isn't deferred.
//   lib.C x = null;
//   ^^^^^
//
import self as self;

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

static method main() → dynamic
  return self::test();
static method test() → dynamic {
  invalid-type x = null;
}

library;
import self as self2;
import "dart:core" as core;

class C extends core::Object {
  static field core::int* y = 1;
  synthetic constructor •() → self2::C*
    : super core::Object::•()
    ;
  static method m() → core::int*
    return 2;
}
static field core::int* x = 0;
static method m(dynamic x) → dynamic
  return null;
