| 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%>(_); |