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 •() → self::A*
    : super core::Object::•()
    ;
  method m() → void {}
}
static field dynamic v = let final dynamic #t1 = new self::A::•() in let final dynamic #t2 = #t1.a = 1 in let final dynamic #t3 = #t1.b.add(2) in let final dynamic #t4 = #t1.m() in #t1;
static method main() → dynamic {}
