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

class A extends core::Object {
  synthetic constructor •() → self::A*
    ;
  method f<T extends core::Object* = dynamic>(self::A::f::T* t) → self::A::f::T*
    ;
  method g(dynamic i) → core::int*
    ;
}
static field dynamic a;
static field dynamic b;
static field dynamic c;
static field dynamic d;
static field dynamic e;
static method main() → dynamic
  ;
