[cfe] Copy default values into redirecting factory parameters

Change-Id: Icae02993d15452ae8db8e9905ad77a2e5dfeae29
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/432661
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
This commit is contained in:
Chloe Stefantsova
2025-06-03 07:44:41 -07:00
committed by Commit Queue
parent 59d46be1b5
commit 8a4b95fae9
53 changed files with 175 additions and 155 deletions
@@ -310,7 +310,9 @@ class FactoryEncoding implements InferredTypeListener {
}
delayedDefaultValueCloners.add(new DelayedDefaultValueCloner(
target!, _procedure,
libraryBuilder: libraryBuilder, identicalSignatures: false));
libraryBuilder: libraryBuilder,
identicalSignatures: false,
isOutlineNode: true));
}
}
@@ -5517,6 +5517,7 @@ class BodyBuilder extends StackListenerImpl
.withArguments(_context.redirectingFactoryTargetName),
initializer.fileOffset,
noLength);
variable.isErroneouslyInitialized = true;
} else {
if (!parameter.initializerWasInferred) {
variable.initializer = initializer..parent = variable;
@@ -175,12 +175,31 @@ class DelayedDefaultValueCloner {
VariableDeclaration synthesizedParameter =
_synthesized.positionalParameters[i];
if (i < _original.positionalParameters.length) {
_cloneInitializer(
_original.positionalParameters[i], synthesizedParameter);
if (i >= _synthesized.requiredParameterCount) {
if (i < _original.requiredParameterCount) {
// Coverage-ignore-block(suite): Not run.
// Error case: use `null` as initializer.
synthesizedParameter.initializer = new NullLiteral()
..parent = synthesizedParameter;
if (synthesizedParameter.type.nullability !=
Nullability.nullable) {
synthesizedParameter.isErroneouslyInitialized = true;
}
} else {
_cloneInitializer(
_original.positionalParameters[i], synthesizedParameter);
}
}
} else {
// Error case: use `null` as initializer.
synthesizedParameter.initializer = new NullLiteral()
..parent = synthesizedParameter;
if (i >= _synthesized.requiredParameterCount) {
// Error case: use `null` as initializer.
synthesizedParameter.initializer = new NullLiteral()
..parent = synthesizedParameter;
if (synthesizedParameter.type.nullability != Nullability.nullable) {
// Coverage-ignore-block(suite): Not run.
synthesizedParameter.isErroneouslyInitialized = true;
}
}
}
}
if (_synthesized.namedParameters.isNotEmpty) {
@@ -195,11 +214,20 @@ class DelayedDefaultValueCloner {
VariableDeclaration? originalParameter =
originalParameters[synthesizedParameter.name!];
if (originalParameter != null) {
_cloneInitializer(originalParameter, synthesizedParameter);
if (!originalParameter.isRequired &&
!synthesizedParameter.isRequired) {
_cloneInitializer(originalParameter, synthesizedParameter);
}
} else {
// Error case: use `null` as initializer.
synthesizedParameter.initializer = new NullLiteral()
..parent = synthesizedParameter;
if (!synthesizedParameter.isRequired) {
// Error case: use `null` as initializer.
synthesizedParameter.initializer = new NullLiteral()
..parent = synthesizedParameter;
if (synthesizedParameter.type.nullability !=
Nullability.nullable) {
synthesizedParameter.isErroneouslyInitialized = true;
}
}
}
}
}
@@ -214,6 +242,8 @@ class DelayedDefaultValueCloner {
clonedParameter.initializer = cloner.clone(originalParameter.initializer!)
..parent = clonedParameter;
}
clonedParameter.isErroneouslyInitialized |=
originalParameter.isErroneouslyInitialized;
}
void _cloneDefaultValueForSuperParameters(
@@ -680,7 +680,7 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
),
// 100.0%.
"package:front_end/src/kernel/body_builder.dart": (
hitCount: 7215,
hitCount: 7216,
missCount: 0,
),
// 100.0%.
@@ -825,7 +825,7 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
),
// 100.0%.
"package:front_end/src/kernel/kernel_helper.dart": (
hitCount: 245,
hitCount: 264,
missCount: 0,
),
// 100.0%.
@@ -1026,7 +1026,7 @@ const Map<String, ({int hitCount, int missCount})> _expect = {
),
// 100.0%.
"package:front_end/src/source/type_parameter_scope_builder.dart": (
hitCount: 1532,
hitCount: 1536,
missCount: 0,
),
// 100.0%.
@@ -54,25 +54,25 @@ abstract class Link<T extends core::Object? = dynamic> extends core::Object {
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:7:28: Error: Expected 0 type arguments.
factory Link.create2() = LinkFactory<T, T>.create;
^";
static factory create3<T extends core::Object? = dynamic>(core::int i = #C1) → self::Link<self::Link::create3::T%>
static factory create3<T extends core::Object? = dynamic>(core::int i) → self::Link<self::Link::create3::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:8:33: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function(int)'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
factory Link.create3(int i) = LinkFactory.create;
^";
static synthetic method _#create3#tearOff<T extends core::Object? = dynamic>(core::int i = #C1) → self::Link<self::Link::_#create3#tearOff::T%>
static synthetic method _#create3#tearOff<T extends core::Object? = dynamic>(core::int i) → self::Link<self::Link::_#create3#tearOff::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:8:33: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function(int)'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
factory Link.create3(int i) = LinkFactory.create;
^";
static factory create4<T extends core::Object? = dynamic>({core::int i = #C1}) → self::Link<self::Link::create4::T%>
static factory create4<T extends core::Object? = dynamic>({erroneously-initialized core::int i = #C1}) → self::Link<self::Link::create4::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:9:35: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function({int i})'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
factory Link.create4({int i}) = LinkFactory.create;
^";
static synthetic method _#create4#tearOff<T extends core::Object? = dynamic>({core::int i = #C1}) → self::Link<self::Link::_#create4#tearOff::T%>
static synthetic method _#create4#tearOff<T extends core::Object? = dynamic>({erroneously-initialized core::int i = #C1}) → self::Link<self::Link::_#create4#tearOff::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:9:35: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function({int i})'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
@@ -54,25 +54,25 @@ abstract class Link<T extends core::Object? = dynamic> extends core::Object {
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:7:28: Error: Expected 0 type arguments.
factory Link.create2() = LinkFactory<T, T>.create;
^";
static factory create3<T extends core::Object? = dynamic>(core::int i = #C1) → self::Link<self::Link::create3::T%>
static factory create3<T extends core::Object? = dynamic>(core::int i) → self::Link<self::Link::create3::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:8:33: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function(int)'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
factory Link.create3(int i) = LinkFactory.create;
^";
static synthetic method _#create3#tearOff<T extends core::Object? = dynamic>(core::int i = #C1) → self::Link<self::Link::_#create3#tearOff::T%>
static synthetic method _#create3#tearOff<T extends core::Object? = dynamic>(core::int i) → self::Link<self::Link::_#create3#tearOff::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:8:33: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function(int)'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
factory Link.create3(int i) = LinkFactory.create;
^";
static factory create4<T extends core::Object? = dynamic>({core::int i = #C1}) → self::Link<self::Link::create4::T%>
static factory create4<T extends core::Object? = dynamic>({erroneously-initialized core::int i = #C1}) → self::Link<self::Link::create4::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:9:35: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function({int i})'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
factory Link.create4({int i}) = LinkFactory.create;
^";
static synthetic method _#create4#tearOff<T extends core::Object? = dynamic>({core::int i = #C1}) → self::Link<self::Link::_#create4#tearOff::T%>
static synthetic method _#create4#tearOff<T extends core::Object? = dynamic>({erroneously-initialized core::int i = #C1}) → self::Link<self::Link::_#create4#tearOff::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:9:35: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function({int i})'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
@@ -61,7 +61,7 @@ abstract class Link<T extends core::Object? = dynamic> extends core::Object {
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
factory Link.create3(int i) = LinkFactory.create;
^";
static factory create4<T extends core::Object? = dynamic>({core::int i = null}) → self::Link<self::Link::create4::T%>
static factory create4<T extends core::Object? = dynamic>({erroneously-initialized core::int i = null}) → self::Link<self::Link::create4::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:9:35: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function({int i})'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
@@ -54,25 +54,25 @@ abstract class Link<T extends core::Object? = dynamic> extends core::Object {
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:7:28: Error: Expected 0 type arguments.
factory Link.create2() = LinkFactory<T, T>.create;
^";
static factory create3<T extends core::Object? = dynamic>(core::int i = #C1) → self::Link<self::Link::create3::T%>
static factory create3<T extends core::Object? = dynamic>(core::int i) → self::Link<self::Link::create3::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:8:33: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function(int)'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
factory Link.create3(int i) = LinkFactory.create;
^";
static synthetic method _#create3#tearOff<T extends core::Object? = dynamic>(core::int i = #C1) → self::Link<self::Link::_#create3#tearOff::T%>
static synthetic method _#create3#tearOff<T extends core::Object? = dynamic>(core::int i) → self::Link<self::Link::_#create3#tearOff::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:8:33: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function(int)'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
factory Link.create3(int i) = LinkFactory.create;
^";
static factory create4<T extends core::Object? = dynamic>({core::int i = #C1}) → self::Link<self::Link::create4::T%>
static factory create4<T extends core::Object? = dynamic>({erroneously-initialized core::int i = #C1}) → self::Link<self::Link::create4::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:9:35: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function({int i})'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
factory Link.create4({int i}) = LinkFactory.create;
^";
static synthetic method _#create4#tearOff<T extends core::Object? = dynamic>({core::int i = #C1}) → self::Link<self::Link::_#create4#tearOff::T%>
static synthetic method _#create4#tearOff<T extends core::Object? = dynamic>({erroneously-initialized core::int i = #C1}) → self::Link<self::Link::_#create4#tearOff::T%>
return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart:9:35: Error: The constructor function type 'LinkFactory Function()' isn't a subtype of 'Link<T> Function({int i})'.
- 'LinkFactory' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
- 'Link' is from 'pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart'.
@@ -60,9 +60,9 @@ class Class<T extends core::Object? = dynamic> extends core::Object implements s
return new self::Class::•<self::Class::fact::T%>(field);
static synthetic method _#fact#tearOff<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::_#fact#tearOff::T%>
return self::Class::fact<self::Class::_#fact#tearOff::T%>(field);
static factory redirectingFactory<T extends core::Object? = dynamic>(core::int field = #C1) → self::Class<self::Class::redirectingFactory::T%> /* redirection-target: self::Class::•<self::Class::redirectingFactory::T%>*/
static factory redirectingFactory<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::redirectingFactory::T%> /* redirection-target: self::Class::•<self::Class::redirectingFactory::T%>*/
return new self::Class::•<self::Class::redirectingFactory::T%>(field);
static synthetic method _#redirectingFactory#tearOff<T extends core::Object? = dynamic>(core::int field = #C1) → self::Class<self::Class::_#redirectingFactory#tearOff::T%>
static synthetic method _#redirectingFactory#tearOff<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::_#redirectingFactory#tearOff::T%>
return new self::Class::•<self::Class::_#redirectingFactory#tearOff::T%>(field);
}
abstract class Mixin<S extends core::Object? = dynamic> extends core::Object /*isMixinDeclaration*/ {
@@ -60,9 +60,9 @@ class Class<T extends core::Object? = dynamic> extends core::Object implements s
return new self::Class::•<self::Class::fact::T%>(field);
static synthetic method _#fact#tearOff<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::_#fact#tearOff::T%>
return self::Class::fact<self::Class::_#fact#tearOff::T%>(field);
static factory redirectingFactory<T extends core::Object? = dynamic>(core::int field = #C1) → self::Class<self::Class::redirectingFactory::T%> /* redirection-target: self::Class::•<self::Class::redirectingFactory::T%>*/
static factory redirectingFactory<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::redirectingFactory::T%> /* redirection-target: self::Class::•<self::Class::redirectingFactory::T%>*/
return new self::Class::•<self::Class::redirectingFactory::T%>(field);
static synthetic method _#redirectingFactory#tearOff<T extends core::Object? = dynamic>(core::int field = #C1) → self::Class<self::Class::_#redirectingFactory#tearOff::T%>
static synthetic method _#redirectingFactory#tearOff<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::_#redirectingFactory#tearOff::T%>
return new self::Class::•<self::Class::_#redirectingFactory#tearOff::T%>(field);
}
abstract class Mixin<S extends core::Object? = dynamic> extends core::Object /*isMixinDeclaration*/ {
@@ -60,9 +60,9 @@ class Class<T extends core::Object? = dynamic> extends core::Object implements s
return new self::Class::•<self::Class::fact::T%>(field);
static synthetic method _#fact#tearOff<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::_#fact#tearOff::T%>
return self::Class::fact<self::Class::_#fact#tearOff::T%>(field);
static factory redirectingFactory<T extends core::Object? = dynamic>(core::int field = #C1) → self::Class<self::Class::redirectingFactory::T%> /* redirection-target: self::Class::•<self::Class::redirectingFactory::T%>*/
static factory redirectingFactory<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::redirectingFactory::T%> /* redirection-target: self::Class::•<self::Class::redirectingFactory::T%>*/
return new self::Class::•<self::Class::redirectingFactory::T%>(field);
static synthetic method _#redirectingFactory#tearOff<T extends core::Object? = dynamic>(core::int field = #C1) → self::Class<self::Class::_#redirectingFactory#tearOff::T%>
static synthetic method _#redirectingFactory#tearOff<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::_#redirectingFactory#tearOff::T%>
return new self::Class::•<self::Class::_#redirectingFactory#tearOff::T%>(field);
}
abstract class Mixin<S extends core::Object? = dynamic> extends core::Object /*isMixinDeclaration*/ {
@@ -8,7 +8,7 @@ class Class1 extends core::Object {
;
static synthetic method _#_#tearOff([has-declared-initializer core::int field]) → self::Class1
return new self::Class1::_(field);
static factory •([core::int field = null]) → self::Class1 /* redirection-target: self::Class1::_ */
static factory •([core::int field = 42]) → self::Class1 /* redirection-target: self::Class1::_ */
return new self::Class1::_(field);
static synthetic method _#new#tearOff([core::int field]) → self::Class1
return new self::Class1::_(field);
@@ -19,7 +19,7 @@ class Class2 extends core::Object {
;
static synthetic method _#_#tearOff({has-declared-initializer core::int field}) → self::Class2
return new self::Class2::_(field: field);
static factory •({core::int field = null}) → self::Class2 /* redirection-target: self::Class2::_ */
static factory •({core::int field = 42}) → self::Class2 /* redirection-target: self::Class2::_ */
return new self::Class2::_(field: field);
static synthetic method _#new#tearOff({core::int field}) → self::Class2
return new self::Class2::_(field: field);
@@ -11,11 +11,11 @@ class Class1 extends core::Object {
;
static synthetic method _#positional#tearOff([has-declared-initializer core::int field1, has-declared-initializer core::int field2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalSame([core::int field1 = null, core::int field2 = null]) → self::Class1 /* redirection-target: self::Class1::positional */
static factory redirectPositionalSame([core::int field1 = 1, core::int field2 = 2]) → self::Class1 /* redirection-target: self::Class1::positional */
return new self::Class1::positional(field1, field2);
static synthetic method _#redirectPositionalSame#tearOff([core::int field1, core::int field2]) → self::Class1
return new self::Class1::positional(field1, field2);
static factory redirectPositionalFewer1([core::int field1 = null]) → self::Class1 /* redirection-target: self::Class1::positional */
static factory redirectPositionalFewer1([core::int field1 = 1]) → self::Class1 /* redirection-target: self::Class1::positional */
return new self::Class1::positional(field1);
static synthetic method _#redirectPositionalFewer1#tearOff([core::int field1]) → self::Class1
return new self::Class1::positional(field1);
@@ -25,19 +25,19 @@ class Class1 extends core::Object {
return new self::Class1::positional();
static synthetic method _#named#tearOff({has-declared-initializer core::int field1, has-declared-initializer core::int field2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedSame({core::int field1 = null, core::int field2 = null}) → self::Class1 /* redirection-target: self::Class1::named */
static factory redirectNamedSame({core::int field1 = 1, core::int field2 = 2}) → self::Class1 /* redirection-target: self::Class1::named */
return new self::Class1::named(field1: field1, field2: field2);
static synthetic method _#redirectNamedSame#tearOff({core::int field1, core::int field2}) → self::Class1
return new self::Class1::named(field1: field1, field2: field2);
static factory redirectNamedReorder({core::int field2 = null, core::int field1 = null}) → self::Class1 /* redirection-target: self::Class1::named */
static factory redirectNamedReorder({core::int field2 = 2, core::int field1 = 1}) → self::Class1 /* redirection-target: self::Class1::named */
return new self::Class1::named(field2: field2, field1: field1);
static synthetic method _#redirectNamedReorder#tearOff({core::int field2, core::int field1}) → self::Class1
return new self::Class1::named(field2: field2, field1: field1);
static factory redirectNamedFewer1({core::int field1 = null}) → self::Class1 /* redirection-target: self::Class1::named */
static factory redirectNamedFewer1({core::int field1 = 1}) → self::Class1 /* redirection-target: self::Class1::named */
return new self::Class1::named(field1: field1);
static synthetic method _#redirectNamedFewer1#tearOff({core::int field1}) → self::Class1
return new self::Class1::named(field1: field1);
static factory redirectNamedFewer2({core::int field2 = null}) → self::Class1 /* redirection-target: self::Class1::named */
static factory redirectNamedFewer2({core::int field2 = 2}) → self::Class1 /* redirection-target: self::Class1::named */
return new self::Class1::named(field2: field2);
static synthetic method _#redirectNamedFewer2#tearOff({core::int field2}) → self::Class1
return new self::Class1::named(field2: field2);
@@ -52,7 +52,7 @@ class Class<T extends core::Object? = dynamic> extends core::Object implements s
;
static factory fact<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::fact::T%>
return new self::Class::•<self::Class::fact::T%>(field);
static factory redirectingFactory<T extends core::Object? = dynamic>(core::int field = #C1) → self::Class<self::Class::redirectingFactory::T%> /* redirection-target: self::Class::•<self::Class::redirectingFactory::T%>*/
static factory redirectingFactory<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::redirectingFactory::T%> /* redirection-target: self::Class::•<self::Class::redirectingFactory::T%>*/
return new self::Class::•<self::Class::redirectingFactory::T%>(field);
}
abstract class Mixin<S extends core::Object? = dynamic> extends core::Object /*isMixinDeclaration*/ {
@@ -52,7 +52,7 @@ class Class<T extends core::Object? = dynamic> extends core::Object implements s
;
static factory fact<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::fact::T%>
return new self::Class::•<self::Class::fact::T%>(field);
static factory redirectingFactory<T extends core::Object? = dynamic>(core::int field = #C1) → self::Class<self::Class::redirectingFactory::T%> /* redirection-target: self::Class::•<self::Class::redirectingFactory::T%>*/
static factory redirectingFactory<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::redirectingFactory::T%> /* redirection-target: self::Class::•<self::Class::redirectingFactory::T%>*/
return new self::Class::•<self::Class::redirectingFactory::T%>(field);
}
abstract class Mixin<S extends core::Object? = dynamic> extends core::Object /*isMixinDeclaration*/ {
@@ -52,7 +52,7 @@ class Class<T extends core::Object? = dynamic> extends core::Object implements s
;
static factory fact<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::fact::T%>
return new self::Class::•<self::Class::fact::T%>(field);
static factory redirectingFactory<T extends core::Object? = dynamic>(core::int field = #C1) → self::Class<self::Class::redirectingFactory::T%> /* redirection-target: self::Class::•<self::Class::redirectingFactory::T%>*/
static factory redirectingFactory<T extends core::Object? = dynamic>(core::int field) → self::Class<self::Class::redirectingFactory::T%> /* redirection-target: self::Class::•<self::Class::redirectingFactory::T%>*/
return new self::Class::•<self::Class::redirectingFactory::T%>(field);
}
abstract class Mixin<S extends core::Object? = dynamic> extends core::Object /*isMixinDeclaration*/ {
@@ -20,13 +20,13 @@ class A<T extends core::Object? = dynamic> extends core::Object implements self:
return new self::A::•<self::A::_#new#tearOff::T%>();
}
class B<T extends core::Object? = dynamic> extends core::Object {
static factory test05<T extends core::Object? = dynamic>(core::int incompatible = #C1) → self::B<self::B::test05::T%>
static factory test05<T extends core::Object? = dynamic>(core::int incompatible) → self::B<self::B::test05::T%>
return invalid-expression "pkg/front_end/testcases/dart2js/invalid_redirection.dart:13:40: Error: The constructor function type 'A<T> Function()' isn't a subtype of 'B<T> Function(int)'.
- 'A' is from 'pkg/front_end/testcases/dart2js/invalid_redirection.dart'.
- 'B' is from 'pkg/front_end/testcases/dart2js/invalid_redirection.dart'.
factory B.test05(int incompatible) = A<T>;
^";
static synthetic method _#test05#tearOff<T extends core::Object? = dynamic>(core::int incompatible = #C1) → self::B<self::B::_#test05#tearOff::T%>
static synthetic method _#test05#tearOff<T extends core::Object? = dynamic>(core::int incompatible) → self::B<self::B::_#test05#tearOff::T%>
return invalid-expression "pkg/front_end/testcases/dart2js/invalid_redirection.dart:13:40: Error: The constructor function type 'A<T> Function()' isn't a subtype of 'B<T> Function(int)'.
- 'A' is from 'pkg/front_end/testcases/dart2js/invalid_redirection.dart'.
- 'B' is from 'pkg/front_end/testcases/dart2js/invalid_redirection.dart'.
@@ -40,7 +40,3 @@ static method test() → dynamic {
factory B.test05(int incompatible) = A<T>;
^";
}
constants {
#C1 = null
}
@@ -20,13 +20,13 @@ class A<T extends core::Object? = dynamic> extends core::Object implements self:
return new self::A::•<self::A::_#new#tearOff::T%>();
}
class B<T extends core::Object? = dynamic> extends core::Object {
static factory test05<T extends core::Object? = dynamic>(core::int incompatible = #C1) → self::B<self::B::test05::T%>
static factory test05<T extends core::Object? = dynamic>(core::int incompatible) → self::B<self::B::test05::T%>
return invalid-expression "pkg/front_end/testcases/dart2js/invalid_redirection.dart:13:40: Error: The constructor function type 'A<T> Function()' isn't a subtype of 'B<T> Function(int)'.
- 'A' is from 'pkg/front_end/testcases/dart2js/invalid_redirection.dart'.
- 'B' is from 'pkg/front_end/testcases/dart2js/invalid_redirection.dart'.
factory B.test05(int incompatible) = A<T>;
^";
static synthetic method _#test05#tearOff<T extends core::Object? = dynamic>(core::int incompatible = #C1) → self::B<self::B::_#test05#tearOff::T%>
static synthetic method _#test05#tearOff<T extends core::Object? = dynamic>(core::int incompatible) → self::B<self::B::_#test05#tearOff::T%>
return invalid-expression "pkg/front_end/testcases/dart2js/invalid_redirection.dart:13:40: Error: The constructor function type 'A<T> Function()' isn't a subtype of 'B<T> Function(int)'.
- 'A' is from 'pkg/front_end/testcases/dart2js/invalid_redirection.dart'.
- 'B' is from 'pkg/front_end/testcases/dart2js/invalid_redirection.dart'.
@@ -40,7 +40,3 @@ static method test() → dynamic {
factory B.test05(int incompatible) = A<T>;
^";
}
constants {
#C1 = null
}
@@ -20,13 +20,13 @@ class A<T extends core::Object? = dynamic> extends core::Object implements self:
return new self::A::•<self::A::_#new#tearOff::T%>();
}
class B<T extends core::Object? = dynamic> extends core::Object {
static factory test05<T extends core::Object? = dynamic>(core::int incompatible = #C1) → self::B<self::B::test05::T%>
static factory test05<T extends core::Object? = dynamic>(core::int incompatible) → self::B<self::B::test05::T%>
return invalid-expression "pkg/front_end/testcases/dart2js/invalid_redirection.dart:13:40: Error: The constructor function type 'A<T> Function()' isn't a subtype of 'B<T> Function(int)'.
- 'A' is from 'pkg/front_end/testcases/dart2js/invalid_redirection.dart'.
- 'B' is from 'pkg/front_end/testcases/dart2js/invalid_redirection.dart'.
factory B.test05(int incompatible) = A<T>;
^";
static synthetic method _#test05#tearOff<T extends core::Object? = dynamic>(core::int incompatible = #C1) → self::B<self::B::_#test05#tearOff::T%>
static synthetic method _#test05#tearOff<T extends core::Object? = dynamic>(core::int incompatible) → self::B<self::B::_#test05#tearOff::T%>
return invalid-expression "pkg/front_end/testcases/dart2js/invalid_redirection.dart:13:40: Error: The constructor function type 'A<T> Function()' isn't a subtype of 'B<T> Function(int)'.
- 'A' is from 'pkg/front_end/testcases/dart2js/invalid_redirection.dart'.
- 'B' is from 'pkg/front_end/testcases/dart2js/invalid_redirection.dart'.
@@ -40,7 +40,3 @@ static method test() → dynamic {
factory B.test05(int incompatible) = A<T>;
^";
}
constants {
#C1 = null
}
@@ -28,12 +28,12 @@ class Class<T extends core::Object? = dynamic> extends core::Object {
static synthetic method /* from org-dartlang-testcase:///patch_lib.dart */ _#fact#tearOff<T extends core::Object? = dynamic>({has-declared-initializer core::bool defaultValue, required self2::Class::_#fact#tearOff::T% value}) → self2::Class<self2::Class::_#fact#tearOff::T%>
return self2::Class::fact<self2::Class::_#fact#tearOff::T%>(defaultValue: defaultValue, value: value);
@_in::patch
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = null, required self2::Class::redirect::T% value}) → self2::Class<self2::Class::redirect::T%> /* redirection-target: self2::ClassImpl::•<self2::Class::redirect::T%>*/
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = true, required self2::Class::redirect::T% value}) → self2::Class<self2::Class::redirect::T%> /* redirection-target: self2::ClassImpl::•<self2::Class::redirect::T%>*/
return new self2::ClassImpl::•<self2::Class::redirect::T%>(defaultValue: defaultValue, value: value);
static synthetic method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue, required self2::Class::_#redirect#tearOff::T% value}) → self2::Class<self2::Class::_#redirect#tearOff::T%>
return new self2::ClassImpl::•<self2::Class::_#redirect#tearOff::T%>(defaultValue: defaultValue, value: value);
@_in::patch
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = null, required self2::Class::redirect2::T% value}) → self2::Class<self2::Class::redirect2::T%> /* redirection-target: self2::ClassImpl::patched<self2::Class::redirect2::T%>*/
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = true, required self2::Class::redirect2::T% value}) → self2::Class<self2::Class::redirect2::T%> /* redirection-target: self2::ClassImpl::patched<self2::Class::redirect2::T%>*/
return new self2::ClassImpl::patched<self2::Class::redirect2::T%>(defaultValue: defaultValue, value: value);
static synthetic method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect2#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue, required self2::Class::_#redirect2#tearOff::T% value}) → self2::Class<self2::Class::_#redirect2#tearOff::T%>
return new self2::ClassImpl::patched<self2::Class::_#redirect2#tearOff::T%>(defaultValue: defaultValue, value: value);
@@ -98,7 +98,7 @@ class E extends core::_Enum /*isEnum*/ {
^";
static factory f5() → self::E /* redirection-target: self::E::f */
return self::E::f();
static factory f6(core::int value = #C7) → self::E
static factory f6(core::int value) → self::E
return invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_calls.dart:28:29: Error: The constructor function type 'E Function()' isn't a subtype of 'E Function(int)'.
- 'E' is from 'pkg/front_end/testcases/enhanced_enums/constructor_calls.dart'.
factory E.f6(int value) = E.f; // Error.
@@ -128,7 +128,7 @@ static method test() → dynamic {
Try using a constructor or factory that is 'const'.
const E.f(); // Error.
^";
#C8;
#C7;
}
static method main() → dynamic {}
@@ -139,8 +139,7 @@ constants {
#C4 = 1
#C5 = "two"
#C6 = self::E {index:#C4, _name:#C5}
#C7 = null
#C8 = constructor-tearoff self::E::f
#C7 = constructor-tearoff self::E::f
}
@@ -98,7 +98,7 @@ class E extends core::_Enum /*isEnum*/ {
^";
static factory f5() → self::E /* redirection-target: self::E::f */
return self::E::f();
static factory f6(core::int value = #C7) → self::E
static factory f6(core::int value) → self::E
return invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_calls.dart:28:29: Error: The constructor function type 'E Function()' isn't a subtype of 'E Function(int)'.
- 'E' is from 'pkg/front_end/testcases/enhanced_enums/constructor_calls.dart'.
factory E.f6(int value) = E.f; // Error.
@@ -128,7 +128,7 @@ static method test() → dynamic {
Try using a constructor or factory that is 'const'.
const E.f(); // Error.
^";
#C8;
#C7;
}
static method main() → dynamic {}
@@ -139,8 +139,7 @@ constants {
#C4 = 1
#C5 = "two"
#C6 = self::E {index:#C4, _name:#C5}
#C7 = null
#C8 = constructor-tearoff self::E::f
#C7 = constructor-tearoff self::E::f
}
@@ -98,7 +98,7 @@ class E extends core::_Enum /*isEnum*/ {
^";
static factory f5() → self::E /* redirection-target: self::E::f */
return self::E::f();
static factory f6(core::int value = #C7) → self::E
static factory f6(core::int value) → self::E
return invalid-expression "pkg/front_end/testcases/enhanced_enums/constructor_calls.dart:28:29: Error: The constructor function type 'E Function()' isn't a subtype of 'E Function(int)'.
- 'E' is from 'pkg/front_end/testcases/enhanced_enums/constructor_calls.dart'.
factory E.f6(int value) = E.f; // Error.
@@ -128,7 +128,7 @@ static method test() → dynamic {
Try using a constructor or factory that is 'const'.
const E.f(); // Error.
^";
#C8;
#C7;
}
static method main() → dynamic {}
@@ -139,8 +139,7 @@ constants {
#C4 = 1
#C5 = "two"
#C6 = self::E {index:#C4, _name:#C5}
#C7 = null
#C8 = constructor-tearoff self::E::f
#C7 = constructor-tearoff self::E::f
}
@@ -86,19 +86,19 @@ static extension-type-member synthetic method E|constructor#_#redirNotEnough#tea
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:6:32: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function()'.
factory E.redirNotEnough() = E; // Error.
^";
static extension-type-member method E|constructor#redirTooMany1(core::int foo, core::String bar = #C1) → self::E% /* erasure=core::int, declared=! */
static extension-type-member method E|constructor#redirTooMany1(core::int foo, core::String bar) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:8:50: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, String)'.
factory E.redirTooMany1(int foo, String bar) = E; // Error.
^";
static extension-type-member synthetic method E|constructor#_#redirTooMany1#tearOff(core::int foo, core::String bar = #C1) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#redirTooMany1#tearOff(core::int foo, core::String bar) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:8:50: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, String)'.
factory E.redirTooMany1(int foo, String bar) = E; // Error.
^";
static extension-type-member method E|constructor#redirTooMany2(core::int foo, core::String bar = #C1, core::num baz = #C1) → self::E% /* erasure=core::int, declared=! */
static extension-type-member method E|constructor#redirTooMany2(core::int foo, core::String bar, core::num baz) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:9:59: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, String, num)'.
factory E.redirTooMany2(int foo, String bar, num baz) = E; // Error.
^";
static extension-type-member synthetic method E|constructor#_#redirTooMany2#tearOff(core::int foo, core::String bar = #C1, core::num baz = #C1) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#redirTooMany2#tearOff(core::int foo, core::String bar, core::num baz) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:9:59: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, String, num)'.
factory E.redirTooMany2(int foo, String bar, num baz) = E; // Error.
^";
@@ -110,12 +110,12 @@ static extension-type-member synthetic method E|constructor#_#redirTooMany3#tear
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:10:53: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, [dynamic])'.
factory E.redirTooMany3(int foo, [dynamic bar]) = E; // Error.
^";
static extension-type-member method E|constructor#redirTooMany4(core::int foo, {required core::Object bar = #C1}) → self::E% /* erasure=core::int, declared=! */
static extension-type-member method E|constructor#redirTooMany4(core::int foo, {required core::Object bar}) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:11:61: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, {Object bar})'.
- 'Object' is from 'dart:core'.
factory E.redirTooMany4(int foo, {required Object bar}) = E; // Error.
^";
static extension-type-member synthetic method E|constructor#_#redirTooMany4#tearOff(core::int foo, {required core::Object bar = #C1}) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#redirTooMany4#tearOff(core::int foo, {required core::Object bar}) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:11:61: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, {Object bar})'.
- 'Object' is from 'dart:core'.
factory E.redirTooMany4(int foo, {required Object bar}) = E; // Error.
@@ -86,19 +86,19 @@ static extension-type-member synthetic method E|constructor#_#redirNotEnough#tea
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:6:32: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function()'.
factory E.redirNotEnough() = E; // Error.
^";
static extension-type-member method E|constructor#redirTooMany1(core::int foo, core::String bar = #C1) → self::E% /* erasure=core::int, declared=! */
static extension-type-member method E|constructor#redirTooMany1(core::int foo, core::String bar) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:8:50: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, String)'.
factory E.redirTooMany1(int foo, String bar) = E; // Error.
^";
static extension-type-member synthetic method E|constructor#_#redirTooMany1#tearOff(core::int foo, core::String bar = #C1) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#redirTooMany1#tearOff(core::int foo, core::String bar) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:8:50: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, String)'.
factory E.redirTooMany1(int foo, String bar) = E; // Error.
^";
static extension-type-member method E|constructor#redirTooMany2(core::int foo, core::String bar = #C1, core::num baz = #C1) → self::E% /* erasure=core::int, declared=! */
static extension-type-member method E|constructor#redirTooMany2(core::int foo, core::String bar, core::num baz) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:9:59: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, String, num)'.
factory E.redirTooMany2(int foo, String bar, num baz) = E; // Error.
^";
static extension-type-member synthetic method E|constructor#_#redirTooMany2#tearOff(core::int foo, core::String bar = #C1, core::num baz = #C1) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#redirTooMany2#tearOff(core::int foo, core::String bar, core::num baz) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:9:59: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, String, num)'.
factory E.redirTooMany2(int foo, String bar, num baz) = E; // Error.
^";
@@ -110,12 +110,12 @@ static extension-type-member synthetic method E|constructor#_#redirTooMany3#tear
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:10:53: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, [dynamic])'.
factory E.redirTooMany3(int foo, [dynamic bar]) = E; // Error.
^";
static extension-type-member method E|constructor#redirTooMany4(core::int foo, {required core::Object bar = #C1}) → self::E% /* erasure=core::int, declared=! */
static extension-type-member method E|constructor#redirTooMany4(core::int foo, {required core::Object bar}) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:11:61: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, {Object bar})'.
- 'Object' is from 'dart:core'.
factory E.redirTooMany4(int foo, {required Object bar}) = E; // Error.
^";
static extension-type-member synthetic method E|constructor#_#redirTooMany4#tearOff(core::int foo, {required core::Object bar = #C1}) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#redirTooMany4#tearOff(core::int foo, {required core::Object bar}) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:11:61: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, {Object bar})'.
- 'Object' is from 'dart:core'.
factory E.redirTooMany4(int foo, {required Object bar}) = E; // Error.
@@ -86,19 +86,19 @@ static extension-type-member synthetic method E|constructor#_#redirNotEnough#tea
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:6:32: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function()'.
factory E.redirNotEnough() = E; // Error.
^";
static extension-type-member method E|constructor#redirTooMany1(core::int foo, core::String bar = #C1) → self::E% /* erasure=core::int, declared=! */
static extension-type-member method E|constructor#redirTooMany1(core::int foo, core::String bar) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:8:50: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, String)'.
factory E.redirTooMany1(int foo, String bar) = E; // Error.
^";
static extension-type-member synthetic method E|constructor#_#redirTooMany1#tearOff(core::int foo, core::String bar = #C1) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#redirTooMany1#tearOff(core::int foo, core::String bar) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:8:50: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, String)'.
factory E.redirTooMany1(int foo, String bar) = E; // Error.
^";
static extension-type-member method E|constructor#redirTooMany2(core::int foo, core::String bar = #C1, core::num baz = #C1) → self::E% /* erasure=core::int, declared=! */
static extension-type-member method E|constructor#redirTooMany2(core::int foo, core::String bar, core::num baz) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:9:59: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, String, num)'.
factory E.redirTooMany2(int foo, String bar, num baz) = E; // Error.
^";
static extension-type-member synthetic method E|constructor#_#redirTooMany2#tearOff(core::int foo, core::String bar = #C1, core::num baz = #C1) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#redirTooMany2#tearOff(core::int foo, core::String bar, core::num baz) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:9:59: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, String, num)'.
factory E.redirTooMany2(int foo, String bar, num baz) = E; // Error.
^";
@@ -110,12 +110,12 @@ static extension-type-member synthetic method E|constructor#_#redirTooMany3#tear
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:10:53: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, [dynamic])'.
factory E.redirTooMany3(int foo, [dynamic bar]) = E; // Error.
^";
static extension-type-member method E|constructor#redirTooMany4(core::int foo, {required core::Object bar = #C1}) → self::E% /* erasure=core::int, declared=! */
static extension-type-member method E|constructor#redirTooMany4(core::int foo, {required core::Object bar}) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:11:61: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, {Object bar})'.
- 'Object' is from 'dart:core'.
factory E.redirTooMany4(int foo, {required Object bar}) = E; // Error.
^";
static extension-type-member synthetic method E|constructor#_#redirTooMany4#tearOff(core::int foo, {required core::Object bar = #C1}) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#redirTooMany4#tearOff(core::int foo, {required core::Object bar}) → self::E% /* erasure=core::int, declared=! */
return invalid-expression "pkg/front_end/testcases/extension_types/issue53209.dart:11:61: Error: The constructor function type 'E Function(int)' isn't a subtype of 'E Function(int, {Object bar})'.
- 'Object' is from 'dart:core'.
factory E.redirTooMany4(int foo, {required Object bar}) = E; // Error.
@@ -44,13 +44,13 @@ static extension-type-member method E|constructor#testPositional([erroneously-in
lowered final self::E% /* erasure=core::int, declared=! */ #this = x;
return #this;
}
static extension-type-member synthetic method E|constructor#_#testPositional#tearOff([core::int x = #C1, core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#testPositional#tearOff([erroneously-initialized core::int x = #C1, erroneously-initialized core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */
return self::E|constructor#testPositional(x, y);
static extension-type-member method E|constructor#testNamed({erroneously-initialized core::int x = #C1, erroneously-initialized core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */ {
lowered final self::E% /* erasure=core::int, declared=! */ #this = x;
return #this;
}
static extension-type-member synthetic method E|constructor#_#testNamed#tearOff({core::int x = #C1, core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#testNamed#tearOff({erroneously-initialized core::int x = #C1, erroneously-initialized core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */
return self::E|constructor#testNamed(x: x, y: y);
constants {
@@ -44,13 +44,13 @@ static extension-type-member method E|constructor#testPositional([erroneously-in
lowered final self::E% /* erasure=core::int, declared=! */ #this = x;
return #this;
}
static extension-type-member synthetic method E|constructor#_#testPositional#tearOff([core::int x = #C1, core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#testPositional#tearOff([erroneously-initialized core::int x = #C1, erroneously-initialized core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */
return self::E|constructor#testPositional(x, y);
static extension-type-member method E|constructor#testNamed({erroneously-initialized core::int x = #C1, erroneously-initialized core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */ {
lowered final self::E% /* erasure=core::int, declared=! */ #this = x;
return #this;
}
static extension-type-member synthetic method E|constructor#_#testNamed#tearOff({core::int x = #C1, core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#testNamed#tearOff({erroneously-initialized core::int x = #C1, erroneously-initialized core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */
return self::E|constructor#testNamed(x: x, y: y);
constants {
@@ -44,13 +44,13 @@ static extension-type-member method E|constructor#testPositional([erroneously-in
lowered final self::E% /* erasure=core::int, declared=! */ #this = x;
return #this;
}
static extension-type-member synthetic method E|constructor#_#testPositional#tearOff([core::int x = #C1, core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#testPositional#tearOff([erroneously-initialized core::int x = #C1, erroneously-initialized core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */
return self::E|constructor#testPositional(x, y);
static extension-type-member method E|constructor#testNamed({erroneously-initialized core::int x = #C1, erroneously-initialized core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */ {
lowered final self::E% /* erasure=core::int, declared=! */ #this = x;
return #this;
}
static extension-type-member synthetic method E|constructor#_#testNamed#tearOff({core::int x = #C1, core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */
static extension-type-member synthetic method E|constructor#_#testNamed#tearOff({erroneously-initialized core::int x = #C1, erroneously-initialized core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */
return self::E|constructor#testNamed(x: x, y: y);
constants {
@@ -36,7 +36,7 @@ class Class extends core::Object /*hasConstConstructor*/ {
static factory /* from org-dartlang-testcase:///patch_lib.dart */ constFact({core::bool defaultValue = #C3}) → test::Class
return throw "unsupported";
@#C1
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = #C2}) → test::Class /* redirection-target: test::Class::_internal */
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({erroneously-initialized core::bool defaultValue = #C2}) → test::Class /* redirection-target: test::Class::_internal */
return new test::Class::_internal(defaultValue: defaultValue);
}
@@ -36,7 +36,7 @@ class Class extends core::Object /*hasConstConstructor*/ {
static factory /* from org-dartlang-testcase:///patch_lib.dart */ constFact({core::bool defaultValue = #C3}) → test::Class
return throw "unsupported";
@#C1
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = #C2}) → test::Class /* redirection-target: test::Class::_internal */
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({erroneously-initialized core::bool defaultValue = #C2}) → test::Class /* redirection-target: test::Class::_internal */
return new test::Class::_internal(defaultValue: defaultValue);
}
@@ -26,7 +26,7 @@ class Class extends core::Object /*hasConstConstructor*/ {
static factory /* from org-dartlang-testcase:///patch_lib.dart */ constFact({core::bool defaultValue = true}) → self2::Class
;
@_in::patch
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = true}) → self2::Class /* redirection-target: self2::Class::_internal */
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = false}) → self2::Class /* redirection-target: self2::Class::_internal */
return new self2::Class::_internal(defaultValue: defaultValue);
}
@@ -36,7 +36,7 @@ class Class extends core::Object /*hasConstConstructor*/ {
static factory /* from org-dartlang-testcase:///patch_lib.dart */ constFact({core::bool defaultValue = #C3}) → test::Class
return throw "unsupported";
@#C1
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = #C2}) → test::Class /* redirection-target: test::Class::_internal */
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({erroneously-initialized core::bool defaultValue = #C2}) → test::Class /* redirection-target: test::Class::_internal */
return new test::Class::_internal(defaultValue: defaultValue);
}
@@ -9,7 +9,7 @@ class Default extends core::Object /*hasConstConstructor*/ {
;
}
class Settings extends core::Object {
static factory •({self::Sidebar sidebar = null}) → self::Settings /* redirection-target: self::_SSettings::• */
static factory •({self::Sidebar sidebar = const self::_$_SSidebar::•()}) → self::Settings /* redirection-target: self::_SSettings::• */
return self::_SSettings::•(sidebar: sidebar);
}
class Sidebar extends core::Object {
@@ -17,7 +17,7 @@ class Sidebar extends core::Object {
return self::_SSidebar::•();
}
abstract class _SSettings extends core::Object implements self::Settings {
static factory •({self::Sidebar sidebar = null}) → self::_SSettings /* redirection-target: self::_$_SSettings::• */
static factory •({self::Sidebar sidebar = const self::_$_SSidebar::•()}) → self::_SSettings /* redirection-target: self::_$_SSettings::• */
return new self::_$_SSettings::•(sidebar: sidebar);
}
class _$_SSettings extends core::Object implements self::_SSettings /*hasConstConstructor*/ {
@@ -40,5 +40,7 @@ static method main() → void
Extra constant evaluation status:
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue47036.dart:13:33 -> InstanceConstant(const _$_SSidebar{})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue47036.dart:22:37 -> InstanceConstant(const _$_SSidebar{})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue47036.dart:26:44 -> InstanceConstant(const _$_SSidebar{})
Extra constant evaluation: evaluated: 9, effectively constant: 1
Extra constant evaluation: evaluated: 11, effectively constant: 3
@@ -4,7 +4,7 @@ import "dart:core" as core;
abstract class A extends core::Object {
abstract get value() → core::int;
static factory •({core::int value = null}) → self::A /* redirection-target: self::_AImpl::• */
static factory •({core::int value = 0}) → self::A /* redirection-target: self::_AImpl::• */
return new self::_AImpl::•(value: value);
}
class _AImpl extends core::Object implements self::A {
@@ -24,15 +24,15 @@ class Class extends core::Object {
;
static factory redirect1a() → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional();
static factory redirect2a(core::int a = #C1) → self::Class /* redirection-target: self::Class::positional */
static factory redirect2a(core::int a) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a);
static factory redirect3a([core::int a = #C1]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a);
static factory redirect4a(core::int a = #C1, [core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
static factory redirect4a(core::int a, [core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a, b);
static factory redirect5a([core::int a = #C1, core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a, b);
static factory redirect6a([core::int a = #C1, core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
static factory redirect6a([core::int a = #C1, erroneously-initialized core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a, b);
static factory redirect1b() → self::Class /* redirection-target: self::Class::named */
return new self::Class::named();
@@ -44,7 +44,7 @@ class Class extends core::Object {
return new self::Class::named(a: a, b: b);
static factory redirect5b({core::int b = #C2, core::int a = #C1}) → self::Class /* redirection-target: self::Class::named */
return new self::Class::named(b: b, a: a);
static factory redirect6b({core::int a = #C1, core::int b = #C2}) → self::Class /* redirection-target: self::Class::named */
static factory redirect6b({erroneously-initialized core::int a = #C1, core::int b = #C2}) → self::Class /* redirection-target: self::Class::named */
return new self::Class::named(a: a, b: b);
}
static method main() → dynamic {}
@@ -24,15 +24,15 @@ class Class extends core::Object {
;
static factory redirect1a() → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional();
static factory redirect2a(core::int a = #C1) → self::Class /* redirection-target: self::Class::positional */
static factory redirect2a(core::int a) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a);
static factory redirect3a([core::int a = #C1]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a);
static factory redirect4a(core::int a = #C1, [core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
static factory redirect4a(core::int a, [core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a, b);
static factory redirect5a([core::int a = #C1, core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a, b);
static factory redirect6a([core::int a = #C1, core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
static factory redirect6a([core::int a = #C1, erroneously-initialized core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a, b);
static factory redirect1b() → self::Class /* redirection-target: self::Class::named */
return new self::Class::named();
@@ -44,7 +44,7 @@ class Class extends core::Object {
return new self::Class::named(a: a, b: b);
static factory redirect5b({core::int b = #C2, core::int a = #C1}) → self::Class /* redirection-target: self::Class::named */
return new self::Class::named(b: b, a: a);
static factory redirect6b({core::int a = #C1, core::int b = #C2}) → self::Class /* redirection-target: self::Class::named */
static factory redirect6b({erroneously-initialized core::int a = #C1, core::int b = #C2}) → self::Class /* redirection-target: self::Class::named */
return new self::Class::named(a: a, b: b);
}
static method main() → dynamic {}
@@ -11,25 +11,25 @@ class Class extends core::Object {
return new self::Class::positional();
static factory redirect2a(core::int a) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a);
static factory redirect3a([core::int a = null]) → self::Class /* redirection-target: self::Class::positional */
static factory redirect3a([core::int a = 0]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a);
static factory redirect4a(core::int a, [core::int b = null]) → self::Class /* redirection-target: self::Class::positional */
static factory redirect4a(core::int a, [core::int b = 42]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a, b);
static factory redirect5a([core::int a = null, core::int b = null]) → self::Class /* redirection-target: self::Class::positional */
static factory redirect5a([core::int a = 0, core::int b = 42]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a, b);
static factory redirect6a([core::int a = null, core::int b = 2]) → self::Class /* redirection-target: self::Class::positional */
static factory redirect6a([core::int a = 0, core::int b = 42]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a, b);
static factory redirect1b() → self::Class /* redirection-target: self::Class::named */
return new self::Class::named();
static factory redirect2b({core::int a = null}) → self::Class /* redirection-target: self::Class::named */
static factory redirect2b({core::int a = 0}) → self::Class /* redirection-target: self::Class::named */
return new self::Class::named(a: a);
static factory redirect3b({core::int b = null}) → self::Class /* redirection-target: self::Class::named */
static factory redirect3b({core::int b = 42}) → self::Class /* redirection-target: self::Class::named */
return new self::Class::named(b: b);
static factory redirect4b({core::int a = null, core::int b = null}) → self::Class /* redirection-target: self::Class::named */
static factory redirect4b({core::int a = 0, core::int b = 42}) → self::Class /* redirection-target: self::Class::named */
return new self::Class::named(a: a, b: b);
static factory redirect5b({core::int b = null, core::int a = null}) → self::Class /* redirection-target: self::Class::named */
static factory redirect5b({core::int b = 42, core::int a = 0}) → self::Class /* redirection-target: self::Class::named */
return new self::Class::named(b: b, a: a);
static factory redirect6b({core::int a = 1, core::int b = null}) → self::Class /* redirection-target: self::Class::named */
static factory redirect6b({core::int a = 0, core::int b = 42}) → self::Class /* redirection-target: self::Class::named */
return new self::Class::named(a: a, b: b);
}
static method main() → dynamic
@@ -24,15 +24,15 @@ class Class extends core::Object {
;
static factory redirect1a() → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional();
static factory redirect2a(core::int a = #C1) → self::Class /* redirection-target: self::Class::positional */
static factory redirect2a(core::int a) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a);
static factory redirect3a([core::int a = #C1]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a);
static factory redirect4a(core::int a = #C1, [core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
static factory redirect4a(core::int a, [core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a, b);
static factory redirect5a([core::int a = #C1, core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a, b);
static factory redirect6a([core::int a = #C1, core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
static factory redirect6a([core::int a = #C1, erroneously-initialized core::int b = #C2]) → self::Class /* redirection-target: self::Class::positional */
return new self::Class::positional(a, b);
static factory redirect1b() → self::Class /* redirection-target: self::Class::named */
return new self::Class::named();
@@ -44,7 +44,7 @@ class Class extends core::Object {
return new self::Class::named(a: a, b: b);
static factory redirect5b({core::int b = #C2, core::int a = #C1}) → self::Class /* redirection-target: self::Class::named */
return new self::Class::named(b: b, a: a);
static factory redirect6b({core::int a = #C1, core::int b = #C2}) → self::Class /* redirection-target: self::Class::named */
static factory redirect6b({erroneously-initialized core::int a = #C1, core::int b = #C2}) → self::Class /* redirection-target: self::Class::named */
return new self::Class::named(a: a, b: b);
}
static method main() → dynamic {}
@@ -15,7 +15,7 @@ class A extends core::Object {
constructor •([core::int field = #C1]) → self::A
: self::A::field = field, super core::Object::•()
;
static factory redirect([core::int field = #C1]) → self::A /* redirection-target: self::A::• */
static factory redirect([erroneously-initialized core::int field = #C1]) → self::A /* redirection-target: self::A::• */
return new self::A::•(field);
}
static method main() → dynamic {
@@ -15,7 +15,7 @@ class A extends core::Object {
constructor •([core::int field = #C1]) → self::A
: self::A::field = field, super core::Object::•()
;
static factory redirect([core::int field = #C1]) → self::A /* redirection-target: self::A::• */
static factory redirect([erroneously-initialized core::int field = #C1]) → self::A /* redirection-target: self::A::• */
return new self::A::•(field);
}
static method main() → dynamic {
@@ -6,7 +6,7 @@ class A extends core::Object {
final field core::int field;
constructor •([core::int field = 42]) → self::A
;
static factory redirect([core::int field = 87]) → self::A /* redirection-target: self::A::• */
static factory redirect([core::int field = 42]) → self::A /* redirection-target: self::A::• */
return new self::A::•(field);
}
static method main() → dynamic
@@ -15,7 +15,7 @@ class A extends core::Object {
constructor •([core::int field = #C1]) → self::A
: self::A::field = field, super core::Object::•()
;
static factory redirect([core::int field = #C1]) → self::A /* redirection-target: self::A::• */
static factory redirect([erroneously-initialized core::int field = #C1]) → self::A /* redirection-target: self::A::• */
return new self::A::•(field);
}
static method main() → dynamic {
@@ -24,10 +24,10 @@ class Class<T extends core::Object? = dynamic> extends core::Object {
static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact<T extends core::Object? = dynamic>({core::bool defaultValue = true, required self2::Class::fact::T% value}) → self2::Class<self2::Class::fact::T%>
;
@_in::patch
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = null, required self2::Class::redirect::T% value}) → self2::Class<self2::Class::redirect::T%> /* redirection-target: self2::ClassImpl::•<self2::Class::redirect::T%>*/
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = true, required self2::Class::redirect::T% value}) → self2::Class<self2::Class::redirect::T%> /* redirection-target: self2::ClassImpl::•<self2::Class::redirect::T%>*/
return new self2::ClassImpl::•<self2::Class::redirect::T%>(defaultValue: defaultValue, value: value);
@_in::patch
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = null, required self2::Class::redirect2::T% value}) → self2::Class<self2::Class::redirect2::T%> /* redirection-target: self2::ClassImpl::patched<self2::Class::redirect2::T%>*/
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = true, required self2::Class::redirect2::T% value}) → self2::Class<self2::Class::redirect2::T%> /* redirection-target: self2::ClassImpl::patched<self2::Class::redirect2::T%>*/
return new self2::ClassImpl::patched<self2::Class::redirect2::T%>(defaultValue: defaultValue, value: value);
}
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
@@ -5,7 +5,7 @@ import "dart:core" as core;
abstract class A extends core::Object {
constructor •() → self::A
;
static factory redir({core::double foo = null}) → self::A /* redirection-target: self::B::•<dynamic>*/
static factory redir({core::double foo = 10.0}) → self::A /* redirection-target: self::B::•<dynamic>*/
return new self::B::•<dynamic>(foo: foo);
}
class B<T extends core::Object? = dynamic> extends self::A {
@@ -130,9 +130,9 @@ class A extends core::Object {
;
external constructor constructor8([core::int i = #C1]) → self::A;
external constructor constructor9({core::int i = #C1}) → self::A;
static factory factory3([core::int i = #C1]) → self::A /* redirection-target: self::A::constructor3 */
static factory factory3([erroneously-initialized core::int i = #C1]) → self::A /* redirection-target: self::A::constructor3 */
return new self::A::constructor3(i);
static factory factory4({core::int i = #C1}) → self::A /* redirection-target: self::A::constructor4 */
static factory factory4({erroneously-initialized core::int i = #C1}) → self::A /* redirection-target: self::A::constructor4 */
return new self::A::constructor4(i: i);
static factory factory5([core::int? i = #C1]) → self::A /* redirection-target: self::A::constructor5 */
return new self::A::constructor5(i);
@@ -190,9 +190,9 @@ class C extends core::Object implements self::B {
constructor constructor7({required core::int i}) → self::C
: self::C::i = i, super core::Object::•()
;
static factory factory3([core::int i = #C1]) → self::C /* redirection-target: self::C::constructor3 */
static factory factory3([erroneously-initialized core::int i = #C1]) → self::C /* redirection-target: self::C::constructor3 */
return new self::C::constructor3(i);
static factory factory4({core::int i = #C1}) → self::C /* redirection-target: self::C::constructor4 */
static factory factory4({erroneously-initialized core::int i = #C1}) → self::C /* redirection-target: self::C::constructor4 */
return new self::C::constructor4(i: i);
static factory factory5([core::int? i = #C1]) → self::C /* redirection-target: self::C::constructor5 */
return new self::C::constructor5(i);
@@ -130,9 +130,9 @@ class A extends core::Object {
;
external constructor constructor8([core::int i = #C1]) → self::A;
external constructor constructor9({core::int i = #C1}) → self::A;
static factory factory3([core::int i = #C1]) → self::A /* redirection-target: self::A::constructor3 */
static factory factory3([erroneously-initialized core::int i = #C1]) → self::A /* redirection-target: self::A::constructor3 */
return new self::A::constructor3(i);
static factory factory4({core::int i = #C1}) → self::A /* redirection-target: self::A::constructor4 */
static factory factory4({erroneously-initialized core::int i = #C1}) → self::A /* redirection-target: self::A::constructor4 */
return new self::A::constructor4(i: i);
static factory factory5([core::int? i = #C1]) → self::A /* redirection-target: self::A::constructor5 */
return new self::A::constructor5(i);
@@ -190,9 +190,9 @@ class C extends core::Object implements self::B {
constructor constructor7({required core::int i}) → self::C
: self::C::i = i, super core::Object::•()
;
static factory factory3([core::int i = #C1]) → self::C /* redirection-target: self::C::constructor3 */
static factory factory3([erroneously-initialized core::int i = #C1]) → self::C /* redirection-target: self::C::constructor3 */
return new self::C::constructor3(i);
static factory factory4({core::int i = #C1}) → self::C /* redirection-target: self::C::constructor4 */
static factory factory4({erroneously-initialized core::int i = #C1}) → self::C /* redirection-target: self::C::constructor4 */
return new self::C::constructor4(i: i);
static factory factory5([core::int? i = #C1]) → self::C /* redirection-target: self::C::constructor5 */
return new self::C::constructor5(i);
@@ -103,9 +103,9 @@ class A extends core::Object {
;
external constructor constructor8([core::int i = null]) → self::A;
external constructor constructor9({core::int i = null}) → self::A;
static factory factory3([core::int i = null]) → self::A /* redirection-target: self::A::constructor3 */
static factory factory3([erroneously-initialized core::int i = null]) → self::A /* redirection-target: self::A::constructor3 */
return new self::A::constructor3(i);
static factory factory4({core::int i = null}) → self::A /* redirection-target: self::A::constructor4 */
static factory factory4({erroneously-initialized core::int i = null}) → self::A /* redirection-target: self::A::constructor4 */
return new self::A::constructor4(i: i);
static factory factory5([core::int? i = null]) → self::A /* redirection-target: self::A::constructor5 */
return new self::A::constructor5(i);
@@ -156,9 +156,9 @@ class C extends core::Object implements self::B {
;
constructor constructor7({required core::int i}) → self::C
;
static factory factory3([core::int i = null]) → self::C /* redirection-target: self::C::constructor3 */
static factory factory3([erroneously-initialized core::int i = null]) → self::C /* redirection-target: self::C::constructor3 */
return new self::C::constructor3(i);
static factory factory4({core::int i = null}) → self::C /* redirection-target: self::C::constructor4 */
static factory factory4({erroneously-initialized core::int i = null}) → self::C /* redirection-target: self::C::constructor4 */
return new self::C::constructor4(i: i);
static factory factory5([core::int? i = null]) → self::C /* redirection-target: self::C::constructor5 */
return new self::C::constructor5(i);
@@ -130,9 +130,9 @@ class A extends core::Object {
;
external constructor constructor8([core::int i = #C1]) → self::A;
external constructor constructor9({core::int i = #C1}) → self::A;
static factory factory3([core::int i = #C1]) → self::A /* redirection-target: self::A::constructor3 */
static factory factory3([erroneously-initialized core::int i = #C1]) → self::A /* redirection-target: self::A::constructor3 */
return new self::A::constructor3(i);
static factory factory4({core::int i = #C1}) → self::A /* redirection-target: self::A::constructor4 */
static factory factory4({erroneously-initialized core::int i = #C1}) → self::A /* redirection-target: self::A::constructor4 */
return new self::A::constructor4(i: i);
static factory factory5([core::int? i = #C1]) → self::A /* redirection-target: self::A::constructor5 */
return new self::A::constructor5(i);
@@ -190,9 +190,9 @@ class C extends core::Object implements self::B {
constructor constructor7({required core::int i}) → self::C
: self::C::i = i, super core::Object::•()
;
static factory factory3([core::int i = #C1]) → self::C /* redirection-target: self::C::constructor3 */
static factory factory3([erroneously-initialized core::int i = #C1]) → self::C /* redirection-target: self::C::constructor3 */
return new self::C::constructor3(i);
static factory factory4({core::int i = #C1}) → self::C /* redirection-target: self::C::constructor4 */
static factory factory4({erroneously-initialized core::int i = #C1}) → self::C /* redirection-target: self::C::constructor4 */
return new self::C::constructor4(i: i);
static factory factory5([core::int? i = #C1]) → self::C /* redirection-target: self::C::constructor5 */
return new self::C::constructor5(i);
@@ -22,7 +22,7 @@ class C extends core::Object {
static factory fact({erroneously-initialized core::int i = #C1}) → self::C {
return new self::C::gen();
}
static factory redirect({core::int i = #C1}) → self::C /* redirection-target: self::C::gen */
static factory redirect({erroneously-initialized core::int i = #C1}) → self::C /* redirection-target: self::C::gen */
return new self::C::gen(i: i);
}
class D extends core::Object {
@@ -22,7 +22,7 @@ class C extends core::Object {
static factory fact({erroneously-initialized core::int i = #C1}) → self::C {
return new self::C::gen();
}
static factory redirect({core::int i = #C1}) → self::C /* redirection-target: self::C::gen */
static factory redirect({erroneously-initialized core::int i = #C1}) → self::C /* redirection-target: self::C::gen */
return new self::C::gen(i: i);
}
class D extends core::Object {
@@ -20,7 +20,7 @@ class C extends core::Object {
;
static factory fact({erroneously-initialized core::int i = null}) → self::C
;
static factory redirect({core::int i = null}) → self::C /* redirection-target: self::C::gen */
static factory redirect({erroneously-initialized core::int i = null}) → self::C /* redirection-target: self::C::gen */
return new self::C::gen(i: i);
}
class D extends core::Object {
@@ -22,7 +22,7 @@ class C extends core::Object {
static factory fact({erroneously-initialized core::int i = #C1}) → self::C {
return new self::C::gen();
}
static factory redirect({core::int i = #C1}) → self::C /* redirection-target: self::C::gen */
static factory redirect({erroneously-initialized core::int i = #C1}) → self::C /* redirection-target: self::C::gen */
return new self::C::gen(i: i);
}
class D extends core::Object {