library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/deferred_type_annotation.dart:7:5: Warning: The type 'C' is deferred loaded via prefix 'd' and can't be used as a type annotation.
//  - 'C' is from 'pkg/front_end/testcases/general/deferred_lib.dart'.
// Try removing 'deferred' from the import of 'd' or use a supertype of 'C' that isn't deferred.
// bad(d.C x) {}
//     ^^^
//
import self as self;
import "deferred_lib.dart" as def;

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

static method bad(def::C* x) → dynamic {}
static method main() → dynamic {}

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

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