blob: a88d5c878b83de4b3ff2f0a7f9d18a76000b0663 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
typedef F<X extends core::Object? = dynamic> = X%;
extension type E1<X extends core::Object? = dynamic>(X% it) {
abstract extension-type-member representation-field get it() X%;
constructor = self::E1|constructor#;
constructor tearoff = self::E1|constructor#_#new#tearOff;
}
extension type E2<X extends core::Object? = dynamic>(self::E1<self::E1<X%>% /* erasure=X%, declared=! */>% /* erasure=X%, declared=! */ it) {
abstract extension-type-member representation-field get it() self::E1<self::E1<X%>% /* erasure=X%, declared=! */>% /* erasure=X%, declared=! */;
constructor = self::E2|constructor#;
constructor tearoff = self::E2|constructor#_#new#tearOff;
}
static extension-type-member method E1|constructor#<X extends core::Object? = dynamic>(self::E1|constructor#::X% it) → self::E1<self::E1|constructor#::X%>% /* erasure=self::E1|constructor#::X%, declared=! */ {
lowered final self::E1<self::E1|constructor#::X%>% /* erasure=self::E1|constructor#::X%, declared=! */ #this = it;
return #this;
}
static extension-type-member method E1|constructor#_#new#tearOff<X extends core::Object? = dynamic>(self::E1|constructor#_#new#tearOff::X% it) → self::E1<self::E1|constructor#_#new#tearOff::X%>% /* erasure=self::E1|constructor#_#new#tearOff::X%, declared=! */
return self::E1|constructor#<self::E1|constructor#_#new#tearOff::X%>(it);
static extension-type-member method E2|constructor#<X extends core::Object? = dynamic>(self::E1<self::E1<self::E2|constructor#::X%>% /* erasure=self::E2|constructor#::X%, declared=! */>% /* erasure=self::E2|constructor#::X%, declared=! */ it) → self::E2<self::E2|constructor#::X%>% /* erasure=self::E2|constructor#::X%, declared=! */ {
lowered final self::E2<self::E2|constructor#::X%>% /* erasure=self::E2|constructor#::X%, declared=! */ #this = it;
return #this;
}
static extension-type-member method E2|constructor#_#new#tearOff<X extends core::Object? = dynamic>(self::E1<self::E1<self::E2|constructor#_#new#tearOff::X%>% /* erasure=self::E2|constructor#_#new#tearOff::X%, declared=! */>% /* erasure=self::E2|constructor#_#new#tearOff::X%, declared=! */ it) → self::E2<self::E2|constructor#_#new#tearOff::X%>% /* erasure=self::E2|constructor#_#new#tearOff::X%, declared=! */
return self::E2|constructor#<self::E2|constructor#_#new#tearOff::X%>(it);