blob: e343af74514993b1db671c16b3addc9b2ba7818c [file] [log] [blame]
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=! */ {
lowered final self::A<self::A|constructor#::T%>% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
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=! */ {
lowered final self::B<self::B|constructor#::T%>% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
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=! */ {
lowered final self::C<self::C|constructor#::T%>% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
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=! */ {
lowered final self::D% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
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=! */ {
lowered final self::E% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
static extension-type-member method E|constructor#_#new#tearOff(core::int it) → self::E% /* erasure=core::int, declared=! */
return self::E|constructor#(it);