| library; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/extension_types/issue53720.dart:14:9: Error: The setter 'm' isn't defined for the class 'E2'. |
| // Try correcting the name to the name of an existing setter, or defining a setter or field named 'm'. |
| // E2(1).m = 10; /* Error */ |
| // ^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| extension type E1(core::int i) { |
| abstract extension-type-member representation-field get i() → core::int; |
| set m = self::E1|set#m; |
| constructor • = self::E1|constructor#; |
| constructor tearoff • = self::E1|constructor#_#new#tearOff; |
| } |
| extension type E2(core::int i) implements self::E1% /* erasure=core::int, declared=! */ { |
| abstract extension-type-member representation-field get i() → core::int; |
| method m = self::E2|m; |
| method tearoff m = self::E2|get#m; |
| constructor • = self::E2|constructor#; |
| constructor tearoff • = self::E2|constructor#_#new#tearOff; |
| } |
| static extension-type-member method E1|constructor#(core::int i) → self::E1% /* erasure=core::int, declared=! */ { |
| lowered final self::E1% /* erasure=core::int, declared=! */ #this = i; |
| return #this; |
| } |
| static extension-type-member method E1|constructor#_#new#tearOff(core::int i) → self::E1% /* erasure=core::int, declared=! */ |
| return self::E1|constructor#(i); |
| static extension-type-member method E1|set#m(lowered final self::E1% /* erasure=core::int, declared=! */ #this, dynamic _) → void {} |
| static extension-type-member method E2|constructor#(core::int i) → self::E2% /* erasure=core::int, declared=! */ { |
| lowered final self::E2% /* erasure=core::int, declared=! */ #this = i; |
| return #this; |
| } |
| static extension-type-member method E2|constructor#_#new#tearOff(core::int i) → self::E2% /* erasure=core::int, declared=! */ |
| return self::E2|constructor#(i); |
| static extension-type-member method E2|m(lowered final self::E2% /* erasure=core::int, declared=! */ #this) → void {} |
| static extension-type-member method E2|get#m(lowered final self::E2% /* erasure=core::int, declared=! */ #this) → () → void |
| return () → void => self::E2|m(#this); |
| static method test() → void { |
| invalid-expression "pkg/front_end/testcases/extension_types/issue53720.dart:14:9: Error: The setter 'm' isn't defined for the class 'E2'. |
| Try correcting the name to the name of an existing setter, or defining a setter or field named 'm'. |
| E2(1).m = 10; /* Error */ |
| ^" in self::E2|constructor#(1).{<unresolved>}m = 10; |
| } |