| library; | 
 | import self as self; | 
 | import "dart:core" as core; | 
 |  | 
 | class B extends core::Object { | 
 |   field core::num x; | 
 |   field core::String y; | 
 |   constructor •(core::num x, core::String y) → void | 
 |     : self::B::x = x, self::B::y = y, super core::Object::•() { | 
 |     self::events = self::events.{core::String::+}("super(${this.{self::B::x}}, ${this.{self::B::y}}) | 
 | "); | 
 |   } | 
 | } | 
 | class C extends self::B { | 
 |   final field dynamic z; | 
 |   constructor •() → void | 
 |     : final core::int #t1 = self::f(1), final core::String #t2 = self::g(2), self::C::z = self::f(3), super self::B::•(#t1, #t2) | 
 |     ; | 
 | } | 
 | static field core::String events = ""; | 
 | static method f(dynamic x) → core::int { | 
 |   self::events = self::events.{core::String::+}("f(${x}) | 
 | "); | 
 |   return 0; | 
 | } | 
 | static method g(dynamic x) → core::String { | 
 |   self::events = self::events.{core::String::+}("g(${x}) | 
 | "); | 
 |   return "foo"; | 
 | } | 
 | static method main() → dynamic { | 
 |   new self::C::•(); | 
 |   if(!self::events.{core::String::==}("f(1) | 
 | g(2) | 
 | f(3) | 
 | super(0, foo) | 
 | ")) { | 
 |     throw "Unexpected sequence of events: ${self::events}"; | 
 |   } | 
 | } |