| 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=! */ { |
| lowered final self::E11% /* erasure=core::num, declared=! */ #this = it; |
| return #this; |
| } |
| 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=! */ { |
| lowered final self::E12% /* erasure=core::num, declared=! */ #this = it; |
| return #this; |
| } |
| 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=! */ { |
| lowered final self::E13% /* erasure=core::num, declared=! */ #this = it; |
| return #this; |
| } |
| 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=! */ { |
| lowered final self::E21% /* erasure=core::bool, declared=! */ #this = it; |
| return #this; |
| } |
| 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=! */ { |
| lowered final self::E22% /* erasure=core::bool, declared=! */ #this = it; |
| return #this; |
| } |
| 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=! */ { |
| lowered final self::E23% /* erasure=core::bool, declared=! */ #this = it; |
| return #this; |
| } |
| 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=! */ { |
| lowered final self::E31% /* erasure=core::String, declared=! */ #this = it; |
| return #this; |
| } |
| 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=! */ { |
| lowered final self::E32% /* erasure=core::String, declared=! */ #this = it; |
| return #this; |
| } |
| 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=! */ { |
| lowered final self::E33% /* erasure=core::String, declared=! */ #this = it; |
| return #this; |
| } |
| 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=! */ { |
| lowered final self::E34% /* erasure=core::String, declared=! */ #this = it; |
| return #this; |
| } |
| static extension-type-member method E34|constructor#_#new#tearOff(core::String it) → self::E34% /* erasure=core::String, declared=! */ |
| return self::E34|constructor#(it); |