blob: 0a1545254b42e7860fb5c0543b840978412b2d4a [file] [log] [blame]
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)