| library; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/extension_types/issue53324.dart:5:13: Error: Can't have modifier 'covariant' here. |
| // Try removing 'covariant'. |
| // void method(covariant int i) /* Error */ {} |
| // ^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/issue53324.dart:6:13: Error: Can't have modifier 'covariant' here. |
| // Try removing 'covariant'. |
| // void setter(covariant int x) /* Error */ {} |
| // ^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/issue53324.dart:9:15: Error: Can't have modifier 'covariant' in an extension type. |
| // Try removing 'covariant'. |
| // void method(covariant int i) /* Error */ {} |
| // ^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/issue53324.dart:13:15: Error: Can't have modifier 'covariant' in an extension type. |
| // Try removing 'covariant'. |
| // void setter(covariant int x) /* Error */ {} |
| // ^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/issue53324.dart:17:18: Error: Can't have modifier 'covariant' in an extension type. |
| // Try removing 'covariant'. |
| // int operator +(covariant int other) /* Error */ => other + id.floor(); |
| // ^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/issue53324.dart:20:20: Error: Can't have modifier 'covariant' in a primary constructor. |
| // Try removing 'covariant'. |
| // extension type ET4(covariant num id) /* Error */ {} |
| // ^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/extension_types/issue53324.dart:22:20: Error: Can't have modifier 'required' here. |
| // Try removing 'required'. |
| // extension type ET5(required num id) /* Error */ {} |
| // ^^^^^^^^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| extension type ET1(core::num id) { |
| abstract extension-type-member representation-field get id() → core::num; |
| method method = self::ET1|method; |
| method tearoff method = self::ET1|get#method; |
| constructor • = self::ET1|constructor#; |
| constructor tearoff • = self::ET1|constructor#_#new#tearOff; |
| } |
| extension type ET2<T extends core::num>(T id) { |
| abstract extension-type-member representation-field get id() → T; |
| method setter = self::ET2|setter; |
| method tearoff setter = self::ET2|get#setter; |
| constructor • = self::ET2|constructor#; |
| constructor tearoff • = self::ET2|constructor#_#new#tearOff; |
| } |
| extension type ET3(core::num id) { |
| abstract extension-type-member representation-field get id() → core::num; |
| operator + = self::ET3|+; |
| constructor • = self::ET3|constructor#; |
| constructor tearoff • = self::ET3|constructor#_#new#tearOff; |
| } |
| extension type ET4(core::num id) { |
| abstract extension-type-member representation-field get id() → core::num; |
| constructor • = self::ET4|constructor#; |
| constructor tearoff • = self::ET4|constructor#_#new#tearOff; |
| } |
| extension type ET5(core::num id) { |
| abstract extension-type-member representation-field get id() → core::num; |
| constructor • = self::ET5|constructor#; |
| constructor tearoff • = self::ET5|constructor#_#new#tearOff; |
| } |
| static method method(covariant-by-declaration core::int i) → void {} |
| static method setter(covariant-by-declaration core::int x) → void {} |
| static extension-type-member method ET1|constructor#(core::num id) → self::ET1% /* erasure=core::num, declared=! */ { |
| lowered final self::ET1% /* erasure=core::num, declared=! */ #this = id; |
| return #this; |
| } |
| static extension-type-member method ET1|constructor#_#new#tearOff(core::num id) → self::ET1% /* erasure=core::num, declared=! */ |
| return self::ET1|constructor#(id); |
| static extension-type-member method ET1|method(lowered final self::ET1% /* erasure=core::num, declared=! */ #this, covariant-by-declaration core::int i) → void {} |
| static extension-type-member method ET1|get#method(lowered final self::ET1% /* erasure=core::num, declared=! */ #this) → (core::int) → void |
| return (core::int i) → void => self::ET1|method(#this, i); |
| static extension-type-member method ET2|constructor#<T extends core::num>(self::ET2|constructor#::T id) → self::ET2<self::ET2|constructor#::T>% /* erasure=self::ET2|constructor#::T, declared=! */ { |
| lowered final self::ET2<self::ET2|constructor#::T>% /* erasure=self::ET2|constructor#::T, declared=! */ #this = id; |
| return #this; |
| } |
| static extension-type-member method ET2|constructor#_#new#tearOff<T extends core::num>(self::ET2|constructor#_#new#tearOff::T id) → self::ET2<self::ET2|constructor#_#new#tearOff::T>% /* erasure=self::ET2|constructor#_#new#tearOff::T, declared=! */ |
| return self::ET2|constructor#<self::ET2|constructor#_#new#tearOff::T>(id); |
| static extension-type-member method ET2|setter<T extends core::num>(lowered final self::ET2<self::ET2|setter::T>% /* erasure=self::ET2|setter::T, declared=! */ #this, covariant-by-declaration core::int x) → void {} |
| static extension-type-member method ET2|get#setter<T extends core::num>(lowered final self::ET2<self::ET2|get#setter::T>% /* erasure=self::ET2|get#setter::T, declared=! */ #this) → (core::int) → void |
| return (core::int x) → void => self::ET2|setter<self::ET2|get#setter::T>(#this, x); |
| static extension-type-member method ET3|constructor#(core::num id) → self::ET3% /* erasure=core::num, declared=! */ { |
| lowered final self::ET3% /* erasure=core::num, declared=! */ #this = id; |
| return #this; |
| } |
| static extension-type-member method ET3|constructor#_#new#tearOff(core::num id) → self::ET3% /* erasure=core::num, declared=! */ |
| return self::ET3|constructor#(id); |
| static extension-type-member method ET3|+(lowered final self::ET3% /* erasure=core::num, declared=! */ #this, covariant-by-declaration core::int other) → core::int |
| return other.{core::num::+}((#this as{Unchecked} core::num).{core::num::floor}(){() → core::int}){(core::num) → core::int}; |
| static extension-type-member method ET4|constructor#(covariant-by-declaration core::num id) → self::ET4% /* erasure=core::num, declared=! */ { |
| lowered final self::ET4% /* erasure=core::num, declared=! */ #this = id; |
| return #this; |
| } |
| static extension-type-member method ET4|constructor#_#new#tearOff(core::num id) → self::ET4% /* erasure=core::num, declared=! */ |
| return self::ET4|constructor#(id); |
| static extension-type-member method ET5|constructor#(core::num id) → self::ET5% /* erasure=core::num, declared=! */ { |
| lowered final self::ET5% /* erasure=core::num, declared=! */ #this = id; |
| return #this; |
| } |
| static extension-type-member method ET5|constructor#_#new#tearOff(core::num id) → self::ET5% /* erasure=core::num, declared=! */ |
| return self::ET5|constructor#(id); |