blob: 5427e2e39e70d4587770f6553a828212d6bfaafb [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extension_types/issue54169_2.dart:6:20: Error: An extension type can't depend on itself through its representation type.
// extension type ET2(ET2 it) {}
// ^
//
import self as self;
extension type ET1(self::ET2% /* erasure=invalid-type, declared=! */ it) {
abstract extension-type-member representation-field get it() self::ET2% /* erasure=invalid-type, declared=! */;
constructor = self::ET1|constructor#;
constructor tearoff = self::ET1|constructor#_#new#tearOff;
}
extension type ET2(invalid-type it) {
abstract extension-type-member representation-field get it() self::ET2% /* erasure=invalid-type, declared=! */;
constructor = self::ET2|constructor#;
constructor tearoff = self::ET2|constructor#_#new#tearOff;
}
static extension-type-member method ET1|constructor#(self::ET2% /* erasure=invalid-type, declared=! */ it) → self::ET1% /* erasure=invalid-type, declared=! */ {
lowered final self::ET1% /* erasure=invalid-type, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET1|constructor#_#new#tearOff(self::ET2% /* erasure=invalid-type, declared=! */ it) → self::ET1% /* erasure=invalid-type, declared=! */
return self::ET1|constructor#(it);
static extension-type-member method ET2|constructor#(self::ET2% /* erasure=invalid-type, declared=! */ it) → self::ET2% /* erasure=invalid-type, declared=! */ {
lowered final self::ET2% /* erasure=invalid-type, declared=! */ #this = it;
return #this;
}
static extension-type-member method ET2|constructor#_#new#tearOff(self::ET2% /* erasure=invalid-type, declared=! */ it) → self::ET2% /* erasure=invalid-type, declared=! */
return self::ET2|constructor#(it);