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

class A extends core::Object {
  field core::int a = null;
  field core::List<core::int> b = null;
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  method m() → void {}
}
static field self::A v = let final self::A #t1 = new self::A::•() in let final core::int #t2 = #t1.{self::A::a} = 1 in let final void #t3 = #t1.{self::A::b}.{core::List::add}(2) in let final void #t4 = #t1.{self::A::m}() in #t1;
static method main() → dynamic {}
