| 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}"; |
| } |
| } |