library;
import self as self;
import "dart:core" as core;
import "./deferred_lib.dart" as def;

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

static method main() → dynamic {}
static method test() → dynamic {
  let final core::Object #t1 = CheckLibraryIsLoaded(lib) in def::x = self::m2() as{TypeError} core::int;
  let final core::Object #t2 = CheckLibraryIsLoaded(lib) in def::m(self::m2());
}
static method m2() → dynamic
  return 1;

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 core::int x = 0;
static method m(dynamic x) → dynamic
  return null;
