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

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