| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| extension type Class(core::int it) { |
| abstract extension-type-member representation-field get it() → core::int; |
| constructor • = self::Class|constructor#; |
| constructor tearoff • = self::Class|constructor#_#new#tearOff; |
| constructor named = self::Class|constructor#named; |
| constructor tearoff named = self::Class|constructor#_#named#tearOff; |
| } |
| extension type GenericClass<T extends core::Object? = dynamic>(T% it) { |
| abstract extension-type-member representation-field get it() → T%; |
| constructor • = self::GenericClass|constructor#; |
| constructor tearoff • = self::GenericClass|constructor#_#new#tearOff; |
| } |
| static extension-type-member method Class|constructor#(core::int it) → self::Class% /* erasure=core::int, declared=! */ { |
| lowered final self::Class% /* erasure=core::int, declared=! */ #this = it; |
| return #this; |
| } |
| static extension-type-member method Class|constructor#_#new#tearOff(core::int it) → self::Class% /* erasure=core::int, declared=! */ |
| return self::Class|constructor#(it); |
| static extension-type-member method Class|constructor#named(core::int it) → self::Class% /* erasure=core::int, declared=! */ { |
| lowered final self::Class% /* erasure=core::int, declared=! */ #this = it.{core::num::+}(1){(core::num) → core::int}; |
| return #this; |
| } |
| static extension-type-member method Class|constructor#_#named#tearOff(core::int it) → self::Class% /* erasure=core::int, declared=! */ |
| return self::Class|constructor#named(it); |
| static extension-type-member method GenericClass|constructor#<T extends core::Object? = dynamic>(self::GenericClass|constructor#::T% it) → self::GenericClass<self::GenericClass|constructor#::T%>% /* erasure=self::GenericClass|constructor#::T%, declared=! */ { |
| lowered final self::GenericClass<self::GenericClass|constructor#::T%>% /* erasure=self::GenericClass|constructor#::T%, declared=! */ #this = it; |
| return #this; |
| } |
| static extension-type-member method GenericClass|constructor#_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass|constructor#_#new#tearOff::T% it) → self::GenericClass<self::GenericClass|constructor#_#new#tearOff::T%>% /* erasure=self::GenericClass|constructor#_#new#tearOff::T%, declared=! */ |
| return self::GenericClass|constructor#<self::GenericClass|constructor#_#new#tearOff::T%>(it); |
| static method main() → dynamic { |
| self::Class% /* erasure=core::int, declared=! */ a = self::Class|constructor#(3); |
| self::Class% /* erasure=core::int, declared=! */ b = self::Class|constructor#(4); |
| self::Class% /* erasure=core::int, declared=! */ b2 = #C1(4){(core::int) → self::Class% /* erasure=core::int, declared=! */}; |
| self::Class% /* erasure=core::int, declared=! */ c = self::Class|constructor#named(5); |
| self::Class% /* erasure=core::int, declared=! */ c2 = #C2(5){(core::int) → self::Class% /* erasure=core::int, declared=! */}; |
| self::GenericClass<core::String>% /* erasure=core::String, declared=! */ d = self::GenericClass|constructor#<core::String>("foo"); |
| self::GenericClass<core::String>% /* erasure=core::String, declared=! */ d2 = #C4("foo"){(core::String) → self::GenericClass<core::String>% /* erasure=core::String, declared=! */}; |
| self::GenericClass<core::String>% /* erasure=core::String, declared=! */ d3 = #C3<core::String>("foo"){(core::String) → self::GenericClass<core::String>% /* erasure=core::String, declared=! */}; |
| self::GenericClass<core::String>% /* erasure=core::String, declared=! */ e = self::GenericClass|constructor#<core::String>("bar"); |
| self::GenericClass<core::String>% /* erasure=core::String, declared=! */ e2 = #C4("bar"){(core::String) → self::GenericClass<core::String>% /* erasure=core::String, declared=! */}; |
| self::GenericClass<core::String>% /* erasure=core::String, declared=! */ e3 = #C3<core::String>("bar"){(core::String) → self::GenericClass<core::String>% /* erasure=core::String, declared=! */}; |
| self::GenericClass<core::int>% /* erasure=core::int, declared=! */ f = self::GenericClass|constructor#<core::int>(42); |
| self::GenericClass<core::int>% /* erasure=core::int, declared=! */ f2 = #C5(42){(core::int) → self::GenericClass<core::int>% /* erasure=core::int, declared=! */}; |
| self::GenericClass<core::int>% /* erasure=core::int, declared=! */ f3 = #C3<core::int>(42){(core::int) → self::GenericClass<core::int>% /* erasure=core::int, declared=! */}; |
| self::GenericClass<core::int>% /* erasure=core::int, declared=! */ g = self::GenericClass|constructor#<core::int>(87); |
| self::GenericClass<core::int>% /* erasure=core::int, declared=! */ g2 = #C3<core::int>(87){(core::int) → self::GenericClass<core::int>% /* erasure=core::int, declared=! */}; |
| self::GenericClass<core::num>% /* erasure=core::num, declared=! */ h = self::GenericClass|constructor#<core::num>(123); |
| self::GenericClass<core::num>% /* erasure=core::num, declared=! */ h2 = #C3<core::num>(123){(core::num) → self::GenericClass<core::num>% /* erasure=core::num, declared=! */}; |
| self::expect(3, a as{Unchecked} core::int); |
| self::expect(3, a); |
| self::expect(4, b as{Unchecked} core::int); |
| self::expect(4, b); |
| self::expect(4, b2 as{Unchecked} core::int); |
| self::expect(4, b2); |
| self::expect(6, c as{Unchecked} core::int); |
| self::expect(6, c); |
| self::expect(6, c2 as{Unchecked} core::int); |
| self::expect(6, c2); |
| self::expect("foo", d as{Unchecked} core::String); |
| self::expect("foo", d); |
| self::expect("foo", d2 as{Unchecked} core::String); |
| self::expect("foo", d2); |
| self::expect("foo", d3 as{Unchecked} core::String); |
| self::expect("foo", d3); |
| self::expect("bar", e as{Unchecked} core::String); |
| self::expect("bar", e); |
| self::expect("bar", e2 as{Unchecked} core::String); |
| self::expect("bar", e2); |
| self::expect("bar", e3 as{Unchecked} core::String); |
| self::expect("bar", e3); |
| self::expect(42, f as{Unchecked} core::int); |
| self::expect(42, f); |
| self::expect(42, f2 as{Unchecked} core::int); |
| self::expect(42, f2); |
| self::expect(42, f3 as{Unchecked} core::int); |
| self::expect(42, f3); |
| self::expect(87, g as{Unchecked} core::int); |
| self::expect(87, g); |
| self::expect(87, g2 as{Unchecked} core::int); |
| self::expect(87, g2); |
| self::expect(123, h as{Unchecked} core::num); |
| self::expect(123, h); |
| self::expect(123, h2 as{Unchecked} core::num); |
| self::expect(123, h2); |
| } |
| 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::Class|constructor#_#new#tearOff |
| #C2 = static-tearoff self::Class|constructor#_#named#tearOff |
| #C3 = static-tearoff self::GenericClass|constructor#_#new#tearOff |
| #C4 = instantiation #C3 <core::String> |
| #C5 = instantiation #C3 <core::int> |
| } |