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

class A extends core::Object {
  field self::B<core::int> b;
  synthetic constructor •() → void
    ;
}
class B<T extends core::Object = dynamic> extends core::Object {
  constructor •(self::B::T x) → void
    ;
}
static field dynamic t3;
static method main() → dynamic
  ;
