[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:
committed by
Commit Queue
parent
59d46be1b5
commit
8a4b95fae9
@@ -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%.
|
||||
|
||||
+4
-4
@@ -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'.
|
||||
|
||||
+4
-4
@@ -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'.
|
||||
|
||||
+1
-1
@@ -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'.
|
||||
|
||||
+4
-4
@@ -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'.
|
||||
|
||||
+2
-2
@@ -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*/ {
|
||||
|
||||
+2
-2
@@ -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*/ {
|
||||
|
||||
+2
-2
@@ -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*/ {
|
||||
|
||||
+2
-2
@@ -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);
|
||||
|
||||
+6
-6
@@ -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);
|
||||
|
||||
+1
-1
@@ -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*/ {
|
||||
|
||||
+1
-1
@@ -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*/ {
|
||||
|
||||
+1
-1
@@ -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
|
||||
}
|
||||
|
||||
|
||||
|
||||
+3
-4
@@ -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 {}
|
||||
|
||||
+4
-4
@@ -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 {}
|
||||
|
||||
+9
-9
@@ -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
|
||||
|
||||
+4
-4
@@ -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 {}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user