blob: 2ab3d7d05baffc95eb9f7c29cb97f3eda4a4b0e3 [file] [log] [blame]
library;
//
// Problems in library:
//
// pkg/front_end/testcases/extension_types/implements.dart:26:5: Error: The method 'methodB' isn't defined for the class 'A'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodB'.
// a.methodB(); // Error
// ^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:27:5: Error: The method 'methodC1' isn't defined for the class 'A'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodC1'.
// a.methodC1(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:28:5: Error: The method 'methodC2' isn't defined for the class 'A'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodC2'.
// a.methodC2(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:29:5: Error: The method 'methodD1' isn't defined for the class 'A'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodD1'.
// a.methodD1(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:31:6: Error: The method 'methodA' isn't defined for the class 'B<String>'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodA'.
// b1.methodA(); // Error
// ^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:32:6: Error: The method 'methodC1' isn't defined for the class 'B<String>'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodC1'.
// b1.methodC1(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:33:6: Error: The method 'methodC2' isn't defined for the class 'B<String>'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodC2'.
// b1.methodC2(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:34:6: Error: The method 'methodD1' isn't defined for the class 'B<String>'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodD1'.
// b1.methodD1(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:36:6: Error: The method 'methodA' isn't defined for the class 'B<num>'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodA'.
// b2.methodA(); // Error
// ^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:37:6: Error: The method 'methodC1' isn't defined for the class 'B<num>'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodC1'.
// b2.methodC1(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:38:6: Error: The method 'methodC2' isn't defined for the class 'B<num>'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodC2'.
// b2.methodC2(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:39:6: Error: The method 'methodD1' isn't defined for the class 'B<num>'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodD1'.
// b2.methodD1(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:41:6: Error: The method 'methodB' isn't defined for the class 'C1'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodB'.
// c1.methodB(); // Error
// ^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:42:6: Error: The method 'methodC2' isn't defined for the class 'C1'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodC2'.
// c1.methodC2(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:43:6: Error: The method 'methodD1' isn't defined for the class 'C1'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodD1'.
// c1.methodD1(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:45:6: Error: The method 'methodC1' isn't defined for the class 'C2'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodC1'.
// c2.methodC1(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:46:6: Error: The method 'methodD1' isn't defined for the class 'C2'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodD1'.
// c2.methodD1(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:48:6: Error: The method 'methodB' isn't defined for the class 'D1'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodB'.
// d1.methodB(); // Error
// ^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:49:6: Error: The method 'methodC2' isn't defined for the class 'D1'.
// Try correcting the name to the name of an existing method, or defining a method named 'methodC2'.
// d1.methodC2(); // Error
// ^^^^^^^^
//
// pkg/front_end/testcases/extension_types/implements.dart:51:7: Error: A value of type 'B<String>' can't be assigned to a variable of type 'A'.
// a = b1; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:52:7: Error: A value of type 'B<num>' can't be assigned to a variable of type 'A'.
// a = b2; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:54:8: Error: A value of type 'A' can't be assigned to a variable of type 'B<String>'.
// b1 = a; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:55:8: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<String>'.
// b1 = b2; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:56:8: Error: A value of type 'C1' can't be assigned to a variable of type 'B<String>'.
// b1 = c1; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:57:8: Error: A value of type 'C2' can't be assigned to a variable of type 'B<String>'.
// b1 = c2; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:58:8: Error: A value of type 'D1' can't be assigned to a variable of type 'B<String>'.
// b1 = d1; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:60:8: Error: A value of type 'A' can't be assigned to a variable of type 'B<num>'.
// b2 = a; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:61:8: Error: A value of type 'B<String>' can't be assigned to a variable of type 'B<num>'.
// b2 = b1; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:62:8: Error: A value of type 'C1' can't be assigned to a variable of type 'B<num>'.
// b2 = c1; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:63:8: Error: A value of type 'D1' can't be assigned to a variable of type 'B<num>'.
// b2 = d1; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:65:8: Error: A value of type 'A' can't be assigned to a variable of type 'C1'.
// c1 = a; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:66:8: Error: A value of type 'B<String>' can't be assigned to a variable of type 'C1'.
// c1 = b1; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:67:8: Error: A value of type 'B<num>' can't be assigned to a variable of type 'C1'.
// c1 = b2; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:68:8: Error: A value of type 'C2' can't be assigned to a variable of type 'C1'.
// c1 = c2; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:70:8: Error: A value of type 'A' can't be assigned to a variable of type 'C2'.
// c2 = a; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:71:8: Error: A value of type 'B<String>' can't be assigned to a variable of type 'C2'.
// c2 = b1; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:72:8: Error: A value of type 'B<num>' can't be assigned to a variable of type 'C2'.
// c2 = b2; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:73:8: Error: A value of type 'C1' can't be assigned to a variable of type 'C2'.
// c2 = c1; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:74:8: Error: A value of type 'D1' can't be assigned to a variable of type 'C2'.
// c2 = d1; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:76:8: Error: A value of type 'A' can't be assigned to a variable of type 'D1'.
// d1 = a; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:77:8: Error: A value of type 'B<String>' can't be assigned to a variable of type 'D1'.
// d1 = b1; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:78:8: Error: A value of type 'B<num>' can't be assigned to a variable of type 'D1'.
// d1 = b2; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:79:8: Error: A value of type 'C1' can't be assigned to a variable of type 'D1'.
// d1 = c1; // Error
// ^
//
// pkg/front_end/testcases/extension_types/implements.dart:80:8: Error: A value of type 'C2' can't be assigned to a variable of type 'D1'.
// d1 = c2; // Error
// ^
//
import self as self;
import "dart:core" as core;
extension type A(core::int it) {
abstract extension-type-member representation-field get it() core::int;
method methodA = self::A|methodA;
method tearoff methodA = self::A|get#methodA;
constructor = self::A|constructor#;
constructor tearoff = self::A|constructor#_#new#tearOff;
}
extension type B<T extends core::Object? = dynamic>(T% it) {
abstract extension-type-member representation-field get it() T%;
method methodB = self::B|methodB;
method tearoff methodB = self::B|get#methodB;
constructor = self::B|constructor#;
constructor tearoff = self::B|constructor#_#new#tearOff;
}
extension type C1(core::int it) implements self::A% /* erasure=core::int, declared=! */ {
abstract extension-type-member representation-field get it() core::int;
method methodC1 = self::C1|methodC1;
method tearoff methodC1 = self::C1|get#methodC1;
constructor = self::C1|constructor#;
constructor tearoff = self::C1|constructor#_#new#tearOff;
}
extension type C2(core::int it) implements self::A% /* erasure=core::int, declared=! */, self::B<core::int>% /* erasure=core::int, declared=! */ {
abstract extension-type-member representation-field get it() core::int;
method methodC2 = self::C2|methodC2;
method tearoff methodC2 = self::C2|get#methodC2;
constructor = self::C2|constructor#;
constructor tearoff = self::C2|constructor#_#new#tearOff;
}
extension type D1(core::int it) implements self::C1% /* erasure=core::int, declared=! */ {
abstract extension-type-member representation-field get it() core::int;
method methodD1 = self::D1|methodD1;
method tearoff methodD1 = self::D1|get#methodD1;
constructor = self::D1|constructor#;
constructor tearoff = self::D1|constructor#_#new#tearOff;
}
static extension-type-member method A|constructor#(core::int it) → self::A% /* erasure=core::int, declared=! */ {
lowered final self::A% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
static extension-type-member method A|constructor#_#new#tearOff(core::int it) → self::A% /* erasure=core::int, declared=! */
return self::A|constructor#(it);
static extension-type-member method A|methodA(lowered final self::A% /* erasure=core::int, declared=! */ #this) → core::int
return (#this as{Unchecked} core::int).{core::num::+}(5){(core::num) core::int};
static extension-type-member method A|get#methodA(lowered final self::A% /* erasure=core::int, declared=! */ #this) → () → core::int
return () core::int => self::A|methodA(#this);
static extension-type-member method B|constructor#<T extends core::Object? = dynamic>(self::B|constructor#::T% it) → self::B<self::B|constructor#::T%>% /* erasure=self::B|constructor#::T%, declared=! */ {
lowered final self::B<self::B|constructor#::T%>% /* erasure=self::B|constructor#::T%, declared=! */ #this = it;
return #this;
}
static extension-type-member method B|constructor#_#new#tearOff<T extends core::Object? = dynamic>(self::B|constructor#_#new#tearOff::T% it) → self::B<self::B|constructor#_#new#tearOff::T%>% /* erasure=self::B|constructor#_#new#tearOff::T%, declared=! */
return self::B|constructor#<self::B|constructor#_#new#tearOff::T%>(it);
static extension-type-member method B|methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|methodB::T%>% /* erasure=self::B|methodB::T%, declared=! */ #this) → self::B|methodB::T%
return #this as{Unchecked} self::B|methodB::T%;
static extension-type-member method B|get#methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|get#methodB::T%>% /* erasure=self::B|get#methodB::T%, declared=! */ #this) → () → self::B|get#methodB::T%
return () self::B|get#methodB::T% => self::B|methodB<self::B|get#methodB::T%>(#this);
static extension-type-member method C1|constructor#(core::int it) → self::C1% /* erasure=core::int, declared=! */ {
lowered final self::C1% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
static extension-type-member method C1|constructor#_#new#tearOff(core::int it) → self::C1% /* erasure=core::int, declared=! */
return self::C1|constructor#(it);
static extension-type-member method C1|methodC1(lowered final self::C1% /* erasure=core::int, declared=! */ #this) → core::int
return (#this as{Unchecked} core::int).{core::num::+}(42){(core::num) core::int};
static extension-type-member method C1|get#methodC1(lowered final self::C1% /* erasure=core::int, declared=! */ #this) → () → core::int
return () core::int => self::C1|methodC1(#this);
static extension-type-member method C2|constructor#(core::int it) → self::C2% /* erasure=core::int, declared=! */ {
lowered final self::C2% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
static extension-type-member method C2|constructor#_#new#tearOff(core::int it) → self::C2% /* erasure=core::int, declared=! */
return self::C2|constructor#(it);
static extension-type-member method C2|methodC2(lowered final self::C2% /* erasure=core::int, declared=! */ #this) → core::int
return (#this as{Unchecked} core::int).{core::num::+}(87){(core::num) core::int};
static extension-type-member method C2|get#methodC2(lowered final self::C2% /* erasure=core::int, declared=! */ #this) → () → core::int
return () core::int => self::C2|methodC2(#this);
static extension-type-member method D1|constructor#(core::int it) → self::D1% /* erasure=core::int, declared=! */ {
lowered final self::D1% /* erasure=core::int, declared=! */ #this = it;
return #this;
}
static extension-type-member method D1|constructor#_#new#tearOff(core::int it) → self::D1% /* erasure=core::int, declared=! */
return self::D1|constructor#(it);
static extension-type-member method D1|methodD1(lowered final self::D1% /* erasure=core::int, declared=! */ #this) → core::int
return (#this as{Unchecked} core::int).{core::num::+}(123){(core::num) core::int};
static extension-type-member method D1|get#methodD1(lowered final self::D1% /* erasure=core::int, declared=! */ #this) → () → core::int
return () core::int => self::D1|methodD1(#this);
static method errors(self::A% /* erasure=core::int, declared=! */ a, self::B<core::String>% /* erasure=core::String, declared=! */ b1, self::B<core::num>% /* erasure=core::num, declared=! */ b2, self::C1% /* erasure=core::int, declared=! */ c1, self::C2% /* erasure=core::int, declared=! */ c2, self::D1% /* erasure=core::int, declared=! */ d1) dynamic {
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:26:5: Error: The method 'methodB' isn't defined for the class 'A'.
Try correcting the name to the name of an existing method, or defining a method named 'methodB'.
a.methodB(); // Error
^^^^^^^" in a{<unresolved>}.methodB();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:27:5: Error: The method 'methodC1' isn't defined for the class 'A'.
Try correcting the name to the name of an existing method, or defining a method named 'methodC1'.
a.methodC1(); // Error
^^^^^^^^" in a{<unresolved>}.methodC1();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:28:5: Error: The method 'methodC2' isn't defined for the class 'A'.
Try correcting the name to the name of an existing method, or defining a method named 'methodC2'.
a.methodC2(); // Error
^^^^^^^^" in a{<unresolved>}.methodC2();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:29:5: Error: The method 'methodD1' isn't defined for the class 'A'.
Try correcting the name to the name of an existing method, or defining a method named 'methodD1'.
a.methodD1(); // Error
^^^^^^^^" in a{<unresolved>}.methodD1();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:31:6: Error: The method 'methodA' isn't defined for the class 'B<String>'.
Try correcting the name to the name of an existing method, or defining a method named 'methodA'.
b1.methodA(); // Error
^^^^^^^" in b1{<unresolved>}.methodA();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:32:6: Error: The method 'methodC1' isn't defined for the class 'B<String>'.
Try correcting the name to the name of an existing method, or defining a method named 'methodC1'.
b1.methodC1(); // Error
^^^^^^^^" in b1{<unresolved>}.methodC1();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:33:6: Error: The method 'methodC2' isn't defined for the class 'B<String>'.
Try correcting the name to the name of an existing method, or defining a method named 'methodC2'.
b1.methodC2(); // Error
^^^^^^^^" in b1{<unresolved>}.methodC2();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:34:6: Error: The method 'methodD1' isn't defined for the class 'B<String>'.
Try correcting the name to the name of an existing method, or defining a method named 'methodD1'.
b1.methodD1(); // Error
^^^^^^^^" in b1{<unresolved>}.methodD1();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:36:6: Error: The method 'methodA' isn't defined for the class 'B<num>'.
Try correcting the name to the name of an existing method, or defining a method named 'methodA'.
b2.methodA(); // Error
^^^^^^^" in b2{<unresolved>}.methodA();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:37:6: Error: The method 'methodC1' isn't defined for the class 'B<num>'.
Try correcting the name to the name of an existing method, or defining a method named 'methodC1'.
b2.methodC1(); // Error
^^^^^^^^" in b2{<unresolved>}.methodC1();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:38:6: Error: The method 'methodC2' isn't defined for the class 'B<num>'.
Try correcting the name to the name of an existing method, or defining a method named 'methodC2'.
b2.methodC2(); // Error
^^^^^^^^" in b2{<unresolved>}.methodC2();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:39:6: Error: The method 'methodD1' isn't defined for the class 'B<num>'.
Try correcting the name to the name of an existing method, or defining a method named 'methodD1'.
b2.methodD1(); // Error
^^^^^^^^" in b2{<unresolved>}.methodD1();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:41:6: Error: The method 'methodB' isn't defined for the class 'C1'.
Try correcting the name to the name of an existing method, or defining a method named 'methodB'.
c1.methodB(); // Error
^^^^^^^" in c1{<unresolved>}.methodB();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:42:6: Error: The method 'methodC2' isn't defined for the class 'C1'.
Try correcting the name to the name of an existing method, or defining a method named 'methodC2'.
c1.methodC2(); // Error
^^^^^^^^" in c1{<unresolved>}.methodC2();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:43:6: Error: The method 'methodD1' isn't defined for the class 'C1'.
Try correcting the name to the name of an existing method, or defining a method named 'methodD1'.
c1.methodD1(); // Error
^^^^^^^^" in c1{<unresolved>}.methodD1();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:45:6: Error: The method 'methodC1' isn't defined for the class 'C2'.
Try correcting the name to the name of an existing method, or defining a method named 'methodC1'.
c2.methodC1(); // Error
^^^^^^^^" in c2{<unresolved>}.methodC1();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:46:6: Error: The method 'methodD1' isn't defined for the class 'C2'.
Try correcting the name to the name of an existing method, or defining a method named 'methodD1'.
c2.methodD1(); // Error
^^^^^^^^" in c2{<unresolved>}.methodD1();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:48:6: Error: The method 'methodB' isn't defined for the class 'D1'.
Try correcting the name to the name of an existing method, or defining a method named 'methodB'.
d1.methodB(); // Error
^^^^^^^" in d1{<unresolved>}.methodB();
invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:49:6: Error: The method 'methodC2' isn't defined for the class 'D1'.
Try correcting the name to the name of an existing method, or defining a method named 'methodC2'.
d1.methodC2(); // Error
^^^^^^^^" in d1{<unresolved>}.methodC2();
a = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:51:7: Error: A value of type 'B<String>' can't be assigned to a variable of type 'A'.
a = b1; // Error
^" in b1 as{TypeError} self::A% /* erasure=core::int, declared=! */;
a = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:52:7: Error: A value of type 'B<num>' can't be assigned to a variable of type 'A'.
a = b2; // Error
^" in b2 as{TypeError} self::A% /* erasure=core::int, declared=! */;
b1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:54:8: Error: A value of type 'A' can't be assigned to a variable of type 'B<String>'.
b1 = a; // Error
^" in a as{TypeError} self::B<core::String>% /* erasure=core::String, declared=! */;
b1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:55:8: Error: A value of type 'B<num>' can't be assigned to a variable of type 'B<String>'.
b1 = b2; // Error
^" in b2 as{TypeError} self::B<core::String>% /* erasure=core::String, declared=! */;
b1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:56:8: Error: A value of type 'C1' can't be assigned to a variable of type 'B<String>'.
b1 = c1; // Error
^" in c1 as{TypeError} self::B<core::String>% /* erasure=core::String, declared=! */;
b1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:57:8: Error: A value of type 'C2' can't be assigned to a variable of type 'B<String>'.
b1 = c2; // Error
^" in c2 as{TypeError} self::B<core::String>% /* erasure=core::String, declared=! */;
b1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:58:8: Error: A value of type 'D1' can't be assigned to a variable of type 'B<String>'.
b1 = d1; // Error
^" in d1 as{TypeError} self::B<core::String>% /* erasure=core::String, declared=! */;
b2 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:60:8: Error: A value of type 'A' can't be assigned to a variable of type 'B<num>'.
b2 = a; // Error
^" in a as{TypeError} self::B<core::num>% /* erasure=core::num, declared=! */;
b2 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:61:8: Error: A value of type 'B<String>' can't be assigned to a variable of type 'B<num>'.
b2 = b1; // Error
^" in b1 as{TypeError} self::B<core::num>% /* erasure=core::num, declared=! */;
b2 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:62:8: Error: A value of type 'C1' can't be assigned to a variable of type 'B<num>'.
b2 = c1; // Error
^" in c1 as{TypeError} self::B<core::num>% /* erasure=core::num, declared=! */;
b2 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:63:8: Error: A value of type 'D1' can't be assigned to a variable of type 'B<num>'.
b2 = d1; // Error
^" in d1 as{TypeError} self::B<core::num>% /* erasure=core::num, declared=! */;
c1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:65:8: Error: A value of type 'A' can't be assigned to a variable of type 'C1'.
c1 = a; // Error
^" in a as{TypeError} self::C1% /* erasure=core::int, declared=! */;
c1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:66:8: Error: A value of type 'B<String>' can't be assigned to a variable of type 'C1'.
c1 = b1; // Error
^" in b1 as{TypeError} self::C1% /* erasure=core::int, declared=! */;
c1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:67:8: Error: A value of type 'B<num>' can't be assigned to a variable of type 'C1'.
c1 = b2; // Error
^" in b2 as{TypeError} self::C1% /* erasure=core::int, declared=! */;
c1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:68:8: Error: A value of type 'C2' can't be assigned to a variable of type 'C1'.
c1 = c2; // Error
^" in c2 as{TypeError} self::C1% /* erasure=core::int, declared=! */;
c2 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:70:8: Error: A value of type 'A' can't be assigned to a variable of type 'C2'.
c2 = a; // Error
^" in a as{TypeError} self::C2% /* erasure=core::int, declared=! */;
c2 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:71:8: Error: A value of type 'B<String>' can't be assigned to a variable of type 'C2'.
c2 = b1; // Error
^" in b1 as{TypeError} self::C2% /* erasure=core::int, declared=! */;
c2 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:72:8: Error: A value of type 'B<num>' can't be assigned to a variable of type 'C2'.
c2 = b2; // Error
^" in b2 as{TypeError} self::C2% /* erasure=core::int, declared=! */;
c2 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:73:8: Error: A value of type 'C1' can't be assigned to a variable of type 'C2'.
c2 = c1; // Error
^" in c1 as{TypeError} self::C2% /* erasure=core::int, declared=! */;
c2 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:74:8: Error: A value of type 'D1' can't be assigned to a variable of type 'C2'.
c2 = d1; // Error
^" in d1 as{TypeError} self::C2% /* erasure=core::int, declared=! */;
d1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:76:8: Error: A value of type 'A' can't be assigned to a variable of type 'D1'.
d1 = a; // Error
^" in a as{TypeError} self::D1% /* erasure=core::int, declared=! */;
d1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:77:8: Error: A value of type 'B<String>' can't be assigned to a variable of type 'D1'.
d1 = b1; // Error
^" in b1 as{TypeError} self::D1% /* erasure=core::int, declared=! */;
d1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:78:8: Error: A value of type 'B<num>' can't be assigned to a variable of type 'D1'.
d1 = b2; // Error
^" in b2 as{TypeError} self::D1% /* erasure=core::int, declared=! */;
d1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:79:8: Error: A value of type 'C1' can't be assigned to a variable of type 'D1'.
d1 = c1; // Error
^" in c1 as{TypeError} self::D1% /* erasure=core::int, declared=! */;
d1 = invalid-expression "pkg/front_end/testcases/extension_types/implements.dart:80:8: Error: A value of type 'C2' can't be assigned to a variable of type 'D1'.
d1 = c2; // Error
^" in c2 as{TypeError} self::D1% /* erasure=core::int, declared=! */;
}
static method method(self::A% /* erasure=core::int, declared=! */ a, self::B<core::String>% /* erasure=core::String, declared=! */ b1, self::B<core::num>% /* erasure=core::num, declared=! */ b2, self::C1% /* erasure=core::int, declared=! */ c1, self::C2% /* erasure=core::int, declared=! */ c2, self::D1% /* erasure=core::int, declared=! */ d1) dynamic {
self::expect(0.{core::num::+}(5){(core::num) core::int}, self::A|methodA(a));
self::expect("0", self::B|methodB<core::String>(b1));
self::expect(1.{core::num::+}(0){(core::num) core::int}, self::B|methodB<core::num>(b2));
self::expect(2.{core::num::+}(5){(core::num) core::int}, self::A|methodA(c1));
self::expect(2.{core::num::+}(42){(core::num) core::int}, self::C1|methodC1(c1));
self::expect(3.{core::num::+}(5){(core::num) core::int}, self::A|methodA(c2));
self::expect(3, self::B|methodB<core::int>(c2));
self::expect(3.{core::num::+}(87){(core::num) core::int}, self::C2|methodC2(c2));
self::expect(4.{core::num::+}(5){(core::num) core::int}, self::A|methodA(d1));
self::expect(4.{core::num::+}(42){(core::num) core::int}, self::C1|methodC1(d1));
self::expect(4.{core::num::+}(123){(core::num) core::int}, self::D1|methodD1(d1));
a = a;
a = c1;
a = c2;
a = d1;
b1 = b1;
b2 = b2;
b2 = c2;
c1 = c1;
c1 = d1;
c2 = c2;
d1 = d1;
}
static method main() dynamic {
self::method(self::A|constructor#(0), self::B|constructor#<core::String>("0"), self::B|constructor#<core::num>(1), self::C1|constructor#(2), self::C2|constructor#(3), self::D1|constructor#(4));
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!(expected =={core::Object::==}{(core::Object) core::bool} actual)) {
throw "Expected ${expected}, actual ${actual}";
}
}