@test::a
@test::A::•(1)
library test;
import self as self;
import "dart:core" as core;

typedef F1 = () → void;
typedef F2 = () → void;
class A extends core::Object {
  const constructor •(core::int value) → self::A
    ;
}
@self::a
@self::A::•(2)
class C extends core::Object {
  synthetic constructor •() → self::C
    ;
}
static const field core::Object a = const core::Object::•();
@self::a
@self::A::•(3)
static field core::int f1;
@self::a
@self::A::•(3)
static field core::int f2;
@self::a
@self::A::•(4)
static method main() → void
  ;
