blob: 6bd259978e31110c245a76651e7d6250a79a920c [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extension_types/issue54602.dart:5:19: Error: A type variable can't have the same name as its enclosing declaration.
// extension type E1<E1>(Object? _) {}
// ^^
//
// pkg/front_end/testcases/extension_types/issue54602.dart:6:22: Error: A type variable can't have the same name as its enclosing declaration.
// extension type E2<X, E2>(Object? _) {}
// ^^
//
// pkg/front_end/testcases/extension_types/issue54602.dart:7:25: Error: A type variable can't have the same name as its enclosing declaration.
// extension type E3<X, Y, E3>(Object? _) {}
// ^^
//
import self as self;
import "dart:core" as core;
extension type E1<E1 extends core::Object? = dynamic>(core::Object? _) {
abstract extension-type-member representation-field get _() core::Object?;
constructor = self::E1|constructor#;
constructor tearoff = self::E1|constructor#_#new#tearOff;
}
extension type E2<X extends core::Object? = dynamic, E2 extends core::Object? = dynamic>(core::Object? _) {
abstract extension-type-member representation-field get _() core::Object?;
constructor = self::E2|constructor#;
constructor tearoff = self::E2|constructor#_#new#tearOff;
}
extension type E3<X extends core::Object? = dynamic, Y extends core::Object? = dynamic, E3 extends core::Object? = dynamic>(core::Object? _) {
abstract extension-type-member representation-field get _() core::Object?;
constructor = self::E3|constructor#;
constructor tearoff = self::E3|constructor#_#new#tearOff;
}
static extension-type-member method E1|constructor#<E1 extends core::Object? = dynamic>(core::Object? _) → self::E1<self::E1|constructor#::E1%>% /* erasure=core::Object?, declared=! */ {
lowered final self::E1<self::E1|constructor#::E1%>% /* erasure=core::Object?, declared=! */ #this = _;
return #this;
}
static extension-type-member method E1|constructor#_#new#tearOff<E1 extends core::Object? = dynamic>(core::Object? _) → self::E1<self::E1|constructor#_#new#tearOff::E1%>% /* erasure=core::Object?, declared=! */
return self::E1|constructor#<self::E1|constructor#_#new#tearOff::E1%>(_);
static extension-type-member method E2|constructor#<X extends core::Object? = dynamic, E2 extends core::Object? = dynamic>(core::Object? _) → self::E2<self::E2|constructor#::X%, self::E2|constructor#::E2%>% /* erasure=core::Object?, declared=! */ {
lowered final self::E2<self::E2|constructor#::X%, self::E2|constructor#::E2%>% /* erasure=core::Object?, declared=! */ #this = _;
return #this;
}
static extension-type-member method E2|constructor#_#new#tearOff<X extends core::Object? = dynamic, E2 extends core::Object? = dynamic>(core::Object? _) → self::E2<self::E2|constructor#_#new#tearOff::X%, self::E2|constructor#_#new#tearOff::E2%>% /* erasure=core::Object?, declared=! */
return self::E2|constructor#<self::E2|constructor#_#new#tearOff::X%, self::E2|constructor#_#new#tearOff::E2%>(_);
static extension-type-member method E3|constructor#<X extends core::Object? = dynamic, Y extends core::Object? = dynamic, E3 extends core::Object? = dynamic>(core::Object? _) → self::E3<self::E3|constructor#::X%, self::E3|constructor#::Y%, self::E3|constructor#::E3%>% /* erasure=core::Object?, declared=! */ {
lowered final self::E3<self::E3|constructor#::X%, self::E3|constructor#::Y%, self::E3|constructor#::E3%>% /* erasure=core::Object?, declared=! */ #this = _;
return #this;
}
static extension-type-member method E3|constructor#_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic, E3 extends core::Object? = dynamic>(core::Object? _) → self::E3<self::E3|constructor#_#new#tearOff::X%, self::E3|constructor#_#new#tearOff::Y%, self::E3|constructor#_#new#tearOff::E3%>% /* erasure=core::Object?, declared=! */
return self::E3|constructor#<self::E3|constructor#_#new#tearOff::X%, self::E3|constructor#_#new#tearOff::Y%, self::E3|constructor#_#new#tearOff::E3%>(_);