| library; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/extension_types/super_extension_type_conflict.dart:11:16: Error: 'D' can't implement both 'A<int>' and 'A<String>' |
| // extension type D(int it) implements A<int>, B<String> {} |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/super_extension_type_conflict.dart:13:16: Error: 'E' can't implement both 'A<int>' and 'A<String>' |
| // extension type E(int it) implements B<int>, C<String> {} |
| // ^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| extension type A<T extends core::Object? = dynamic>(core::int it) { |
| abstract extension-type-member representation-field get it() → core::int; |
| constructor • = self::A|constructor#; |
| constructor tearoff • = self::A|constructor#_#new#tearOff; |
| } |
| extension type B<T extends core::Object? = dynamic>(core::int it) implements self::A<T%>% /* erasure=core::int, declared=! */ { |
| abstract extension-type-member representation-field get it() → core::int; |
| constructor • = self::B|constructor#; |
| constructor tearoff • = self::B|constructor#_#new#tearOff; |
| } |
| extension type C<T extends core::Object? = dynamic>(core::int it) implements self::A<T%>% /* erasure=core::int, declared=! */ { |
| abstract extension-type-member representation-field get it() → core::int; |
| constructor • = self::C|constructor#; |
| constructor tearoff • = self::C|constructor#_#new#tearOff; |
| } |
| extension type D(core::int it) implements self::A<core::int>% /* erasure=core::int, declared=! */, self::B<core::String>% /* erasure=core::int, declared=! */ { |
| abstract extension-type-member representation-field get it() → core::int; |
| constructor • = self::D|constructor#; |
| constructor tearoff • = self::D|constructor#_#new#tearOff; |
| } |
| extension type E(core::int it) implements self::B<core::int>% /* erasure=core::int, declared=! */, self::C<core::String>% /* erasure=core::int, declared=! */ { |
| abstract extension-type-member representation-field get it() → core::int; |
| constructor • = self::E|constructor#; |
| constructor tearoff • = self::E|constructor#_#new#tearOff; |
| } |
| static extension-type-member method A|constructor#<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|constructor#::T%>% /* erasure=core::int, declared=! */ |
| ; |
| static extension-type-member method A|constructor#_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|constructor#_#new#tearOff::T%>% /* erasure=core::int, declared=! */ |
| return self::A|constructor#<self::A|constructor#_#new#tearOff::T%>(it); |
| static extension-type-member method B|constructor#<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|constructor#::T%>% /* erasure=core::int, declared=! */ |
| ; |
| static extension-type-member method B|constructor#_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|constructor#_#new#tearOff::T%>% /* erasure=core::int, declared=! */ |
| return self::B|constructor#<self::B|constructor#_#new#tearOff::T%>(it); |
| static extension-type-member method C|constructor#<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|constructor#::T%>% /* erasure=core::int, declared=! */ |
| ; |
| static extension-type-member method C|constructor#_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|constructor#_#new#tearOff::T%>% /* erasure=core::int, declared=! */ |
| return self::C|constructor#<self::C|constructor#_#new#tearOff::T%>(it); |
| static extension-type-member method D|constructor#(core::int it) → self::D% /* erasure=core::int, declared=! */ |
| ; |
| static extension-type-member method D|constructor#_#new#tearOff(core::int it) → self::D% /* erasure=core::int, declared=! */ |
| return self::D|constructor#(it); |
| static extension-type-member method E|constructor#(core::int it) → self::E% /* erasure=core::int, declared=! */ |
| ; |
| static extension-type-member method E|constructor#_#new#tearOff(core::int it) → self::E% /* erasure=core::int, declared=! */ |
| return self::E|constructor#(it); |