| library; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart:9:16: Error: 'C' is a supertype of itself. |
| // extension type C<T>(A<T> it) implements C<T> {} |
| // ^ |
| // |
| // pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart:13:16: Error: 'E' is a supertype of itself. |
| // extension type E(A<Never> it) implements B<int>, C<String> {} |
| // ^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| class A<T extends core::Object? = dynamic> extends core::Object { |
| synthetic constructor •() → self::A<self::A::T%> |
| : super core::Object::•() |
| ; |
| } |
| extension type B<T extends core::Object? = dynamic>(self::A<T%> it) implements self::A<T%> { |
| constructor • = self::B|; |
| tearoff • = self::B|_#new#tearOff; |
| } |
| extension type C<T extends core::Object? = dynamic>(self::A<T%> it) { |
| constructor • = self::C|; |
| tearoff • = self::C|_#new#tearOff; |
| } |
| extension type D(self::A<Never> it) implements self::A<core::int>, self::B<core::String> /* = self::A<core::String> */ { |
| constructor • = self::D|; |
| tearoff • = self::D|_#new#tearOff; |
| } |
| extension type E(self::A<Never> it) { |
| constructor • = self::E|; |
| tearoff • = self::E|_#new#tearOff; |
| } |
| static inline-class-member method B|<T extends core::Object? = dynamic>(self::A<self::B|::T%> it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */ { |
| lowered final self::B<self::B|::T%> /* = self::A<self::B|::T%> */ #this = it; |
| return #this; |
| } |
| static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::B|_#new#tearOff::T%> it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */ |
| return self::B|<self::B|_#new#tearOff::T%>(it); |
| static inline-class-member method C|<T extends core::Object? = dynamic>(self::A<self::C|::T%> it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */ { |
| lowered final self::C<self::C|::T%> /* = self::A<self::C|::T%> */ #this = it; |
| return #this; |
| } |
| static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::C|_#new#tearOff::T%> it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */ |
| return self::C|<self::C|_#new#tearOff::T%>(it); |
| static inline-class-member method D|(self::A<Never> it) → self::D /* = self::A<Never> */ { |
| lowered final self::D /* = self::A<Never> */ #this = it; |
| return #this; |
| } |
| static inline-class-member method D|_#new#tearOff(self::A<Never> it) → self::D /* = self::A<Never> */ |
| return self::D|(it); |
| static inline-class-member method E|(self::A<Never> it) → self::E /* = self::A<Never> */ { |
| lowered final self::E /* = self::A<Never> */ #this = it; |
| return #this; |
| } |
| static inline-class-member method E|_#new#tearOff(self::A<Never> it) → self::E /* = self::A<Never> */ |
| return self::E|(it); |