blob: 9b7ccc277d904f532eda02f9e162d76da75a9e3a [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extension_types/issue54269.dart:6:18: Error: An extension type can't depend on itself through its representation type.
// extension type E(F<F<E>> it) {} /* Error */
// ^
// pkg/front_end/testcases/extension_types/issue54269.dart:5:9: Context: The issue arises via this type alias.
// typedef F<X> = X;
// ^
//
import self as self;
import "dart:core" as core;
typedef F<X extends core::Object? = dynamic> = X%;
extension type E(invalid-type it) {
abstract extension-type-member representation-field get it() self::E% /* erasure=invalid-type, declared=! */;
constructor = self::E|constructor#;
constructor tearoff = self::E|constructor#_#new#tearOff;
}
static extension-type-member method E|constructor#(self::E% /* erasure=invalid-type, declared=! */ it) → self::E% /* erasure=invalid-type, declared=! */ {
lowered final self::E% /* erasure=invalid-type, declared=! */ #this = it;
return #this;
}
static extension-type-member method E|constructor#_#new#tearOff(self::E% /* erasure=invalid-type, declared=! */ it) → self::E% /* erasure=invalid-type, declared=! */
return self::E|constructor#(it);