| library; |
| import self as self; |
| import "dart:core" as core; |
| |
| extension type I<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(X% value) { |
| abstract extension-type-member representation-field get value() → X%; |
| constructor • = self::I|constructor#; |
| constructor tearoff • = self::I|constructor#_#new#tearOff; |
| } |
| static extension-type-member method I|constructor#<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|constructor#::X% value) → self::I<self::I|constructor#::X%, self::I|constructor#::Y%>% /* erasure=self::I|constructor#::X%, declared=! */ { |
| lowered final self::I<self::I|constructor#::X%, self::I|constructor#::Y%>% /* erasure=self::I|constructor#::X%, declared=! */ #this = value; |
| return #this; |
| } |
| static extension-type-member method I|constructor#_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|constructor#_#new#tearOff::X% value) → self::I<self::I|constructor#_#new#tearOff::X%, self::I|constructor#_#new#tearOff::Y%>% /* erasure=self::I|constructor#_#new#tearOff::X%, declared=! */ |
| return self::I|constructor#<self::I|constructor#_#new#tearOff::X%, self::I|constructor#_#new#tearOff::Y%>(value); |
| static method f(self::I<core::int, core::String>% /* erasure=core::int, declared=! */ i) → void {} |
| static method main() → void { |
| self::f(self::I|constructor#<core::int, core::String>(2)); |
| } |