| library; | 
 | import self as self; | 
 | import "dart:core" as core; | 
 |  | 
 | class Class extends core::Object { | 
 |   field core::int? field = null; | 
 |   synthetic constructor •() → self::Class | 
 |     : super core::Object::•() | 
 |     ; | 
 | } | 
 | extension /* unnamed */ _extension#0 on self::Class { | 
 |   get property1 = self::_extension#0|get#property1; | 
 |   set property1 = self::_extension#0|set#property1; | 
 | } | 
 | extension /* unnamed */ _extension#1 on self::Class { | 
 |   get property2 = self::_extension#1|get#property2; | 
 |   set property2 = self::_extension#1|set#property2; | 
 | } | 
 | static extension-member method _extension#0|get#property1(lowered final self::Class #this) → core::int? | 
 |   return self::_extension#1|get#property2(#this); | 
 | static extension-member method _extension#0|set#property1(lowered final self::Class #this, core::int? value) → void | 
 |   return #this.{self::Class::field} = value; | 
 | static extension-member method _extension#1|get#property2(lowered final self::Class #this) → core::int? | 
 |   return #this.{self::Class::field}{core::int?}; | 
 | static extension-member method _extension#1|set#property2(lowered final self::Class #this, core::int? value) → void | 
 |   return let final core::int? #t1 = value in let final void #t2 = self::_extension#0|set#property1(#this, #t1) in #t1; | 
 | static method main() → dynamic { | 
 |   self::Class c = new self::Class::•(); | 
 |   self::expect(null, self::_extension#0|get#property1(c)); | 
 |   self::expect(null, self::_extension#1|get#property2(c)); | 
 |   self::expect(42, let final core::int #t3 = 42 in let final void #t4 = self::_extension#0|set#property1(c, #t3) in #t3); | 
 |   self::expect(42, self::_extension#1|get#property2(c)); | 
 |   self::expect(87, let final core::int #t5 = 87 in let final void #t6 = self::_extension#1|set#property2(c, #t5) in #t5); | 
 |   self::expect(87, self::_extension#0|get#property1(c)); | 
 | } | 
 | static method expect(dynamic expected, dynamic actual) → dynamic { | 
 |   if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) { | 
 |     throw "Mismatch: expected=${expected}, actual=${actual}"; | 
 |   } | 
 | } |