blob: 6d69c3a0fd0e768e1463e645bb24e772c5d49561 [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extension_types/issue53172.dart:13:16: Error: Can't inherit members that conflict with each other.
// extension type E13(num it) implements E11, E12 {} /* Error */
// ^^^
// pkg/front_end/testcases/extension_types/issue53172.dart:6:8: Context: This is one inherited member.
// void foo() {}
// ^^^
// pkg/front_end/testcases/extension_types/issue53172.dart:10:12: Context: This is the other inherited member.
// void set foo(String value) {}
// ^^^
//
// pkg/front_end/testcases/extension_types/issue53172.dart:23:16: Error: The extension type 'E23' can't inherit the member 'bar' from more than one extension type.
// Try declaring a member 'bar' in 'E23' to resolve the conflict.
// extension type E23(bool it) implements E21, E22 {} /* Error */
// ^^^
// pkg/front_end/testcases/extension_types/issue53172.dart:16:8: Context: This is one of the inherited extension type members.
// void bar() {}
// ^^^
// pkg/front_end/testcases/extension_types/issue53172.dart:20:8: Context: This is one of the inherited extension type members.
// void bar() {}
// ^^^
//
import self as self;
import "dart:core" as core;
extension type E11(core::num it) {
abstract extension-type-member representation-field get it() core::num;
method foo = self::E11|foo;
method tearoff foo = self::E11|get#foo;
constructor = self::E11|constructor#;
constructor tearoff = self::E11|constructor#_#new#tearOff;
}
extension type E12(core::num it) {
abstract extension-type-member representation-field get it() core::num;
set foo = self::E12|set#foo;
constructor = self::E12|constructor#;
constructor tearoff = self::E12|constructor#_#new#tearOff;
}
extension type E13(core::num it) implements self::E11% /* erasure=core::num, declared=! */, self::E12% /* erasure=core::num, declared=! */ {
abstract extension-type-member representation-field get it() core::num;
constructor = self::E13|constructor#;
constructor tearoff = self::E13|constructor#_#new#tearOff;
}
extension type E21(core::bool it) {
abstract extension-type-member representation-field get it() core::bool;
method bar = self::E21|bar;
method tearoff bar = self::E21|get#bar;
constructor = self::E21|constructor#;
constructor tearoff = self::E21|constructor#_#new#tearOff;
}
extension type E22(core::bool it) {
abstract extension-type-member representation-field get it() core::bool;
method bar = self::E22|bar;
method tearoff bar = self::E22|get#bar;
constructor = self::E22|constructor#;
constructor tearoff = self::E22|constructor#_#new#tearOff;
}
extension type E23(core::bool it) implements self::E21% /* erasure=core::bool, declared=! */, self::E22% /* erasure=core::bool, declared=! */ {
abstract extension-type-member representation-field get it() core::bool;
constructor = self::E23|constructor#;
constructor tearoff = self::E23|constructor#_#new#tearOff;
}
extension type E31(core::String it) {
abstract extension-type-member representation-field get it() core::String;
method baz = self::E31|baz;
method tearoff baz = self::E31|get#baz;
constructor = self::E31|constructor#;
constructor tearoff = self::E31|constructor#_#new#tearOff;
}
extension type E32(core::String it) implements self::E31% /* erasure=core::String, declared=! */ {
abstract extension-type-member representation-field get it() core::String;
constructor = self::E32|constructor#;
constructor tearoff = self::E32|constructor#_#new#tearOff;
}
extension type E33(core::String it) implements self::E31% /* erasure=core::String, declared=! */ {
abstract extension-type-member representation-field get it() core::String;
constructor = self::E33|constructor#;
constructor tearoff = self::E33|constructor#_#new#tearOff;
}
extension type E34(core::String it) implements self::E32% /* erasure=core::String, declared=! */, self::E33% /* erasure=core::String, declared=! */ {
abstract extension-type-member representation-field get it() core::String;
constructor = self::E34|constructor#;
constructor tearoff = self::E34|constructor#_#new#tearOff;
}
static extension-type-member method E11|constructor#(core::num it) → self::E11% /* erasure=core::num, declared=! */
;
static extension-type-member method E11|constructor#_#new#tearOff(core::num it) → self::E11% /* erasure=core::num, declared=! */
return self::E11|constructor#(it);
static extension-type-member method E11|foo(lowered final self::E11% /* erasure=core::num, declared=! */ #this) → void
;
static extension-type-member method E11|get#foo(lowered final self::E11% /* erasure=core::num, declared=! */ #this) → () → void
return () void => self::E11|foo(#this);
static extension-type-member method E12|constructor#(core::num it) → self::E12% /* erasure=core::num, declared=! */
;
static extension-type-member method E12|constructor#_#new#tearOff(core::num it) → self::E12% /* erasure=core::num, declared=! */
return self::E12|constructor#(it);
static extension-type-member method E12|set#foo(lowered final self::E12% /* erasure=core::num, declared=! */ #this, core::String value) → void
;
static extension-type-member method E13|constructor#(core::num it) → self::E13% /* erasure=core::num, declared=! */
;
static extension-type-member method E13|constructor#_#new#tearOff(core::num it) → self::E13% /* erasure=core::num, declared=! */
return self::E13|constructor#(it);
static extension-type-member method E21|constructor#(core::bool it) → self::E21% /* erasure=core::bool, declared=! */
;
static extension-type-member method E21|constructor#_#new#tearOff(core::bool it) → self::E21% /* erasure=core::bool, declared=! */
return self::E21|constructor#(it);
static extension-type-member method E21|bar(lowered final self::E21% /* erasure=core::bool, declared=! */ #this) → void
;
static extension-type-member method E21|get#bar(lowered final self::E21% /* erasure=core::bool, declared=! */ #this) → () → void
return () void => self::E21|bar(#this);
static extension-type-member method E22|constructor#(core::bool it) → self::E22% /* erasure=core::bool, declared=! */
;
static extension-type-member method E22|constructor#_#new#tearOff(core::bool it) → self::E22% /* erasure=core::bool, declared=! */
return self::E22|constructor#(it);
static extension-type-member method E22|bar(lowered final self::E22% /* erasure=core::bool, declared=! */ #this) → void
;
static extension-type-member method E22|get#bar(lowered final self::E22% /* erasure=core::bool, declared=! */ #this) → () → void
return () void => self::E22|bar(#this);
static extension-type-member method E23|constructor#(core::bool it) → self::E23% /* erasure=core::bool, declared=! */
;
static extension-type-member method E23|constructor#_#new#tearOff(core::bool it) → self::E23% /* erasure=core::bool, declared=! */
return self::E23|constructor#(it);
static extension-type-member method E31|constructor#(core::String it) → self::E31% /* erasure=core::String, declared=! */
;
static extension-type-member method E31|constructor#_#new#tearOff(core::String it) → self::E31% /* erasure=core::String, declared=! */
return self::E31|constructor#(it);
static extension-type-member method E31|baz(lowered final self::E31% /* erasure=core::String, declared=! */ #this) → void
;
static extension-type-member method E31|get#baz(lowered final self::E31% /* erasure=core::String, declared=! */ #this) → () → void
return () void => self::E31|baz(#this);
static extension-type-member method E32|constructor#(core::String it) → self::E32% /* erasure=core::String, declared=! */
;
static extension-type-member method E32|constructor#_#new#tearOff(core::String it) → self::E32% /* erasure=core::String, declared=! */
return self::E32|constructor#(it);
static extension-type-member method E33|constructor#(core::String it) → self::E33% /* erasure=core::String, declared=! */
;
static extension-type-member method E33|constructor#_#new#tearOff(core::String it) → self::E33% /* erasure=core::String, declared=! */
return self::E33|constructor#(it);
static extension-type-member method E34|constructor#(core::String it) → self::E34% /* erasure=core::String, declared=! */
;
static extension-type-member method E34|constructor#_#new#tearOff(core::String it) → self::E34% /* erasure=core::String, declared=! */
return self::E34|constructor#(it);