| library; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/extension_types/redirecting_factory_from_enum.dart:7:35: Error: The constructor function type 'E1 Function(A1)' isn't a subtype of 'A1 Function(A1)'. |
| // - 'A1' is from 'pkg/front_end/testcases/extension_types/redirecting_factory_from_enum.dart'. |
| // const factory A1.named(A1 it) = E1.named; // Error. |
| // ^ |
| // |
| // pkg/front_end/testcases/extension_types/redirecting_factory_from_enum.dart:17:35: Error: The constructor function type 'E2 Function(A2)' isn't a subtype of 'A2 Function(A2)'. |
| // - 'A2' is from 'pkg/front_end/testcases/extension_types/redirecting_factory_from_enum.dart'. |
| // const factory A2.named(A2 it) = E2.named; // Error. |
| // ^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| class A1 extends core::Object /*hasConstConstructor*/ { |
| const constructor •() → self::A1 |
| : super core::Object::•() |
| ; |
| static factory named(self::A1 it) → self::A1 |
| return invalid-expression "pkg/front_end/testcases/extension_types/redirecting_factory_from_enum.dart:7:35: Error: The constructor function type 'E1 Function(A1)' isn't a subtype of 'A1 Function(A1)'. |
| - 'A1' is from 'pkg/front_end/testcases/extension_types/redirecting_factory_from_enum.dart'. |
| const factory A1.named(A1 it) = E1.named; // Error. |
| ^"; |
| } |
| class A2 extends core::_Enum /*isEnum*/ { |
| static const field core::List<self::A2> values = #C4; |
| enum-element static const field self::A2 element = #C3; |
| const constructor •(core::int #index, core::String #name) → self::A2 |
| : super core::_Enum::•(#index, #name) |
| ; |
| method _enumToString() → core::String |
| return "A2.${this.{core::_Enum::_name}{core::String}}"; |
| static factory named(self::A2 it) → self::A2 |
| return invalid-expression "pkg/front_end/testcases/extension_types/redirecting_factory_from_enum.dart:17:35: Error: The constructor function type 'E2 Function(A2)' isn't a subtype of 'A2 Function(A2)'. |
| - 'A2' is from 'pkg/front_end/testcases/extension_types/redirecting_factory_from_enum.dart'. |
| const factory A2.named(A2 it) = E2.named; // Error. |
| ^"; |
| } |
| extension type E1(self::A1 it) { |
| abstract extension-type-member representation-field get it() → self::A1; |
| constructor • = self::E1|constructor#; |
| constructor tearoff • = self::E1|constructor#_#new#tearOff; |
| constructor named = self::E1|constructor#named; |
| constructor tearoff named = self::E1|constructor#_#named#tearOff; |
| } |
| extension type E2(self::A2 it) { |
| abstract extension-type-member representation-field get it() → self::A2; |
| constructor • = self::E2|constructor#; |
| constructor tearoff • = self::E2|constructor#_#new#tearOff; |
| constructor named = self::E2|constructor#named; |
| constructor tearoff named = self::E2|constructor#_#named#tearOff; |
| } |
| static extension-type-member method E1|constructor#(self::A1 it) → self::E1% /* erasure=self::A1, declared=! */ { |
| lowered final self::E1% /* erasure=self::A1, declared=! */ #this = it; |
| return #this; |
| } |
| static extension-type-member method E1|constructor#_#new#tearOff(self::A1 it) → self::E1% /* erasure=self::A1, declared=! */ |
| return self::E1|constructor#(it); |
| static extension-type-member method E1|constructor#named(self::A1 it) → self::E1% /* erasure=self::A1, declared=! */ { |
| lowered final self::E1% /* erasure=self::A1, declared=! */ #this; |
| #this = self::E1|constructor#(it); |
| return #this; |
| } |
| static extension-type-member method E1|constructor#_#named#tearOff(self::A1 it) → self::E1% /* erasure=self::A1, declared=! */ |
| return self::E1|constructor#named(it); |
| static extension-type-member method E2|constructor#(self::A2 it) → self::E2% /* erasure=self::A2, declared=! */ { |
| lowered final self::E2% /* erasure=self::A2, declared=! */ #this = it; |
| return #this; |
| } |
| static extension-type-member method E2|constructor#_#new#tearOff(self::A2 it) → self::E2% /* erasure=self::A2, declared=! */ |
| return self::E2|constructor#(it); |
| static extension-type-member method E2|constructor#named(self::A2 it) → self::E2% /* erasure=self::A2, declared=! */ { |
| lowered final self::E2% /* erasure=self::A2, declared=! */ #this; |
| #this = self::E2|constructor#(it); |
| return #this; |
| } |
| static extension-type-member method E2|constructor#_#named#tearOff(self::A2 it) → self::E2% /* erasure=self::A2, declared=! */ |
| return self::E2|constructor#named(it); |
| |
| constants { |
| #C1 = 0 |
| #C2 = "element" |
| #C3 = self::A2 {index:#C1, _name:#C2} |
| #C4 = <self::A2>[#C3] |
| } |
| |
| |
| Constructor coverage from constants: |
| org-dartlang-testcase:///redirecting_factory_from_enum.dart: |
| - A2. (from org-dartlang-testcase:///redirecting_factory_from_enum.dart:16:9) |
| - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) |
| - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) |