|  | library; | 
|  | import self as self; | 
|  | import "dart:core" as core; | 
|  |  | 
|  | abstract class A extends core::Object { | 
|  | abstract get value() → core::int; | 
|  | static factory •({core::int value = #C1}) → self::A /* redirection-target: self::_AImpl::• */ | 
|  | return new self::_AImpl::•(value: value); | 
|  | } | 
|  | class _AImpl extends core::Object implements self::A { | 
|  | final field core::int value; | 
|  | constructor •({core::int value = #C1}) → self::_AImpl | 
|  | : self::_AImpl::value = value, super core::Object::•() | 
|  | ; | 
|  | } | 
|  | static const field ({value: core::int}) → self::A _new = #C2; | 
|  | static const field ({value: core::int}) → self::_AImpl _newImpl = #C3; | 
|  | static method main(core::List<core::String> args) → void { | 
|  | self::expect(0, new self::_AImpl::•().{self::A::value}{core::int}); | 
|  | self::expect(0, new self::_AImpl::•().{self::A::value}{core::int}); | 
|  | self::expect(0, #C2(){({value: core::int}) → self::A}.{self::A::value}{core::int}); | 
|  | self::expect(0, #C2(){({value: core::int}) → self::A}.{self::A::value}{core::int}); | 
|  | self::expect(0, new self::_AImpl::•().{self::_AImpl::value}{core::int}); | 
|  | self::expect(0, new self::_AImpl::•().{self::_AImpl::value}{core::int}); | 
|  | self::expect(0, #C3(){({value: core::int}) → self::_AImpl}.{self::_AImpl::value}{core::int}); | 
|  | self::expect(0, #C3(){({value: core::int}) → self::_AImpl}.{self::_AImpl::value}{core::int}); | 
|  | } | 
|  | static method expect(dynamic expected, dynamic actual) → dynamic { | 
|  | if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) | 
|  | throw "Expected ${expected}, actual ${actual}"; | 
|  | } | 
|  |  | 
|  | constants  { | 
|  | #C1 = 0 | 
|  | #C2 = redirecting-factory-tearoff self::A::• | 
|  | #C3 = constructor-tearoff self::_AImpl::• | 
|  | } |