| library; | 
 | import self as self; | 
 | import "dart:core" as core; | 
 |  | 
 | inline class I /* declaredRepresentationType = core::int */ { | 
 |   static factory • = self::I|; | 
 |   static tearoff • = self::I|_#new#tearOff; | 
 | } | 
 | inline class J /* declaredRepresentationType = core::int */ { | 
 |   static factory • = self::J|; | 
 |   static tearoff • = self::J|_#new#tearOff; | 
 |   constructor _ = self::J|_; | 
 |   tearoff _ = self::J|_#_#tearOff; | 
 | } | 
 | inline class K<T extends core::Object? = dynamic> /* declaredRepresentationType = T% */ { | 
 |   static factory • = self::K|; | 
 |   static tearoff • = self::K|_#new#tearOff; | 
 |   constructor _ = self::K|_; | 
 |   tearoff _ = self::K|_#_#tearOff; | 
 | } | 
 | static inline-class-member method I|() → self::I | 
 |   return 0 as self::I; | 
 | static inline-class-member method I|_#new#tearOff() → self::I | 
 |   return self::I|(); | 
 | static inline-class-member method J|(core::int i) → self::J | 
 |   return self::J|_(i); | 
 | static inline-class-member method J|_#new#tearOff(core::int i) → self::J | 
 |   return self::J|(i); | 
 | static inline-class-member method J|_(core::int i) → self::J { | 
 |   lowered final self::J #this = i; | 
 |   return #this; | 
 | } | 
 | static inline-class-member method J|_#_#tearOff(core::int i) → self::J | 
 |   return self::J|_(i); | 
 | static inline-class-member method K|<T extends core::Object? = dynamic>(self::K|::T% i) → self::K<self::K|::T%> | 
 |   return self::K|_<self::K|::T%>(i); | 
 | static inline-class-member method K|_#new#tearOff<T extends core::Object? = dynamic>(self::K|_#new#tearOff::T% i) → self::K<self::K|_#new#tearOff::T%> | 
 |   return self::K|<self::K|_#new#tearOff::T%>(i); | 
 | static inline-class-member method K|_<T extends core::Object? = dynamic>(self::K|_::T% i) → self::K<self::K|_::T%> { | 
 |   lowered final self::K<self::K|_::T%> #this = i; | 
 |   return #this; | 
 | } | 
 | static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(self::K|_#_#tearOff::T% i) → self::K<self::K|_#_#tearOff::T%> | 
 |   return self::K|_<self::K|_#_#tearOff::T%>(i); | 
 | static method main() → dynamic { | 
 |   self::expect(0, self::I|()); | 
 |   self::expect(0, #C1(){() → self::I}); | 
 |   self::expect(42, self::J|(42)); | 
 |   self::expect(87, self::J|(87)); | 
 |   self::expect(123, #C2(123){(core::int) → self::J}); | 
 |   self::expect("foo", self::K|<core::String>("foo")); | 
 |   self::expect("bar", self::K|<core::String>("bar")); | 
 |   self::expect("baz", #C3<core::String>("baz"){(core::String) → self::K<core::String>}); | 
 |   self::expect("boz", #C4("boz"){(core::String) → self::K<core::String>}); | 
 | } | 
 | static method expect(dynamic expected, dynamic actual) → dynamic { | 
 |   if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual)) | 
 |     throw "Expected ${expected}, actual ${actual}"; | 
 | } | 
 |  | 
 | constants  { | 
 |   #C1 = static-tearoff self::I|_#new#tearOff | 
 |   #C2 = static-tearoff self::J|_#new#tearOff | 
 |   #C3 = static-tearoff self::K|_#new#tearOff | 
 |   #C4 = instantiation #C3 <core::String*> | 
 | } |