diff --git a/pkg/front_end/lib/src/fragment/factory/encoding.dart b/pkg/front_end/lib/src/fragment/factory/encoding.dart index 91c2de640e7..058bcc20c11 100644 --- a/pkg/front_end/lib/src/fragment/factory/encoding.dart +++ b/pkg/front_end/lib/src/fragment/factory/encoding.dart @@ -310,7 +310,9 @@ class FactoryEncoding implements InferredTypeListener { } delayedDefaultValueCloners.add(new DelayedDefaultValueCloner( target!, _procedure, - libraryBuilder: libraryBuilder, identicalSignatures: false)); + libraryBuilder: libraryBuilder, + identicalSignatures: false, + isOutlineNode: true)); } } diff --git a/pkg/front_end/lib/src/kernel/body_builder.dart b/pkg/front_end/lib/src/kernel/body_builder.dart index dd5c7dca0d2..7b68d68a936 100644 --- a/pkg/front_end/lib/src/kernel/body_builder.dart +++ b/pkg/front_end/lib/src/kernel/body_builder.dart @@ -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; diff --git a/pkg/front_end/lib/src/kernel/kernel_helper.dart b/pkg/front_end/lib/src/kernel/kernel_helper.dart index c0f336b43bc..0054e61c117 100644 --- a/pkg/front_end/lib/src/kernel/kernel_helper.dart +++ b/pkg/front_end/lib/src/kernel/kernel_helper.dart @@ -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( diff --git a/pkg/front_end/test/coverage_suite_expected.dart b/pkg/front_end/test/coverage_suite_expected.dart index b16f1af5754..29b71c211a7 100644 --- a/pkg/front_end/test/coverage_suite_expected.dart +++ b/pkg/front_end/test/coverage_suite_expected.dart @@ -680,7 +680,7 @@ const Map _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 _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 _expect = { ), // 100.0%. "package:front_end/src/source/type_parameter_scope_builder.dart": ( - hitCount: 1532, + hitCount: 1536, missCount: 0, ), // 100.0%. diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.expect index eee8fe353ce..57455088458 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.expect @@ -54,25 +54,25 @@ abstract class Link 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.create; ^"; - static factory create3(core::int i = #C1) → self::Link + static factory create3(core::int i) → self::Link 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 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(core::int i = #C1) → self::Link + static synthetic method _#create3#tearOff(core::int i) → self::Link 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 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({core::int i = #C1}) → self::Link + static factory create4({erroneously-initialized core::int i = #C1}) → self::Link 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 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({core::int i = #C1}) → self::Link + static synthetic method _#create4#tearOff({erroneously-initialized core::int i = #C1}) → self::Link 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 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'. diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.modular.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.modular.expect index eee8fe353ce..57455088458 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.modular.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.modular.expect @@ -54,25 +54,25 @@ abstract class Link 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.create; ^"; - static factory create3(core::int i = #C1) → self::Link + static factory create3(core::int i) → self::Link 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 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(core::int i = #C1) → self::Link + static synthetic method _#create3#tearOff(core::int i) → self::Link 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 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({core::int i = #C1}) → self::Link + static factory create4({erroneously-initialized core::int i = #C1}) → self::Link 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 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({core::int i = #C1}) → self::Link + static synthetic method _#create4#tearOff({erroneously-initialized core::int i = #C1}) → self::Link 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 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'. diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.outline.expect index 479b188c68c..12777f384f6 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.outline.expect @@ -61,7 +61,7 @@ abstract class Link 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({core::int i = null}) → self::Link + static factory create4({erroneously-initialized core::int i = null}) → self::Link 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 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'. diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.transformed.expect index e2fb060b18f..922f3617ffd 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/invalid_redirect.dart.strong.transformed.expect @@ -54,25 +54,25 @@ abstract class Link 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.create; ^"; - static factory create3(core::int i = #C1) → self::Link + static factory create3(core::int i) → self::Link 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 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(core::int i = #C1) → self::Link + static synthetic method _#create3#tearOff(core::int i) → self::Link 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 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({core::int i = #C1}) → self::Link + static factory create4({erroneously-initialized core::int i = #C1}) → self::Link 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 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({core::int i = #C1}) → self::Link + static synthetic method _#create4#tearOff({erroneously-initialized core::int i = #C1}) → self::Link 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 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'. diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/named_mixin_application.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/named_mixin_application.dart.strong.expect index 19155069730..5a9dde896a2 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/named_mixin_application.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/named_mixin_application.dart.strong.expect @@ -60,9 +60,9 @@ class Class extends core::Object implements s return new self::Class::•(field); static synthetic method _#fact#tearOff(core::int field) → self::Class return self::Class::fact(field); - static factory redirectingFactory(core::int field = #C1) → self::Class /* redirection-target: self::Class::•*/ + static factory redirectingFactory(core::int field) → self::Class /* redirection-target: self::Class::•*/ return new self::Class::•(field); - static synthetic method _#redirectingFactory#tearOff(core::int field = #C1) → self::Class + static synthetic method _#redirectingFactory#tearOff(core::int field) → self::Class return new self::Class::•(field); } abstract class Mixin extends core::Object /*isMixinDeclaration*/ { diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/named_mixin_application.dart.strong.modular.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/named_mixin_application.dart.strong.modular.expect index 19155069730..5a9dde896a2 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/named_mixin_application.dart.strong.modular.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/named_mixin_application.dart.strong.modular.expect @@ -60,9 +60,9 @@ class Class extends core::Object implements s return new self::Class::•(field); static synthetic method _#fact#tearOff(core::int field) → self::Class return self::Class::fact(field); - static factory redirectingFactory(core::int field = #C1) → self::Class /* redirection-target: self::Class::•*/ + static factory redirectingFactory(core::int field) → self::Class /* redirection-target: self::Class::•*/ return new self::Class::•(field); - static synthetic method _#redirectingFactory#tearOff(core::int field = #C1) → self::Class + static synthetic method _#redirectingFactory#tearOff(core::int field) → self::Class return new self::Class::•(field); } abstract class Mixin extends core::Object /*isMixinDeclaration*/ { diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/named_mixin_application.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/named_mixin_application.dart.strong.transformed.expect index b849bf1765c..374dedec1ea 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/named_mixin_application.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/named_mixin_application.dart.strong.transformed.expect @@ -60,9 +60,9 @@ class Class extends core::Object implements s return new self::Class::•(field); static synthetic method _#fact#tearOff(core::int field) → self::Class return self::Class::fact(field); - static factory redirectingFactory(core::int field = #C1) → self::Class /* redirection-target: self::Class::•*/ + static factory redirectingFactory(core::int field) → self::Class /* redirection-target: self::Class::•*/ return new self::Class::•(field); - static synthetic method _#redirectingFactory#tearOff(core::int field = #C1) → self::Class + static synthetic method _#redirectingFactory#tearOff(core::int field) → self::Class return new self::Class::•(field); } abstract class Mixin extends core::Object /*isMixinDeclaration*/ { diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.strong.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.strong.outline.expect index a0f8634e919..39cf91a2883 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.strong.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.strong.outline.expect @@ -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); diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.strong.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.strong.outline.expect index ab2bd73d844..4fc2b827e5d 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.strong.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.strong.outline.expect @@ -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); diff --git a/pkg/front_end/testcases/constructor_tearoffs/named_mixin_application.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/named_mixin_application.dart.strong.expect index f1d2fd40f69..292bffe8c93 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/named_mixin_application.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/named_mixin_application.dart.strong.expect @@ -52,7 +52,7 @@ class Class extends core::Object implements s ; static factory fact(core::int field) → self::Class return new self::Class::•(field); - static factory redirectingFactory(core::int field = #C1) → self::Class /* redirection-target: self::Class::•*/ + static factory redirectingFactory(core::int field) → self::Class /* redirection-target: self::Class::•*/ return new self::Class::•(field); } abstract class Mixin extends core::Object /*isMixinDeclaration*/ { diff --git a/pkg/front_end/testcases/constructor_tearoffs/named_mixin_application.dart.strong.modular.expect b/pkg/front_end/testcases/constructor_tearoffs/named_mixin_application.dart.strong.modular.expect index f1d2fd40f69..292bffe8c93 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/named_mixin_application.dart.strong.modular.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/named_mixin_application.dart.strong.modular.expect @@ -52,7 +52,7 @@ class Class extends core::Object implements s ; static factory fact(core::int field) → self::Class return new self::Class::•(field); - static factory redirectingFactory(core::int field = #C1) → self::Class /* redirection-target: self::Class::•*/ + static factory redirectingFactory(core::int field) → self::Class /* redirection-target: self::Class::•*/ return new self::Class::•(field); } abstract class Mixin extends core::Object /*isMixinDeclaration*/ { diff --git a/pkg/front_end/testcases/constructor_tearoffs/named_mixin_application.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/named_mixin_application.dart.strong.transformed.expect index 9932670fb54..8f13425b4ef 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/named_mixin_application.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/named_mixin_application.dart.strong.transformed.expect @@ -52,7 +52,7 @@ class Class extends core::Object implements s ; static factory fact(core::int field) → self::Class return new self::Class::•(field); - static factory redirectingFactory(core::int field = #C1) → self::Class /* redirection-target: self::Class::•*/ + static factory redirectingFactory(core::int field) → self::Class /* redirection-target: self::Class::•*/ return new self::Class::•(field); } abstract class Mixin extends core::Object /*isMixinDeclaration*/ { diff --git a/pkg/front_end/testcases/dart2js/invalid_redirection.dart.strong.expect b/pkg/front_end/testcases/dart2js/invalid_redirection.dart.strong.expect index 23807c3cded..c104e78d26e 100644 --- a/pkg/front_end/testcases/dart2js/invalid_redirection.dart.strong.expect +++ b/pkg/front_end/testcases/dart2js/invalid_redirection.dart.strong.expect @@ -20,13 +20,13 @@ class A extends core::Object implements self: return new self::A::•(); } class B extends core::Object { - static factory test05(core::int incompatible = #C1) → self::B + static factory test05(core::int incompatible) → self::B return invalid-expression "pkg/front_end/testcases/dart2js/invalid_redirection.dart:13:40: Error: The constructor function type 'A Function()' isn't a subtype of 'B 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; ^"; - static synthetic method _#test05#tearOff(core::int incompatible = #C1) → self::B + static synthetic method _#test05#tearOff(core::int incompatible) → self::B return invalid-expression "pkg/front_end/testcases/dart2js/invalid_redirection.dart:13:40: Error: The constructor function type 'A Function()' isn't a subtype of 'B 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; ^"; } - -constants { - #C1 = null -} diff --git a/pkg/front_end/testcases/dart2js/invalid_redirection.dart.strong.modular.expect b/pkg/front_end/testcases/dart2js/invalid_redirection.dart.strong.modular.expect index 23807c3cded..c104e78d26e 100644 --- a/pkg/front_end/testcases/dart2js/invalid_redirection.dart.strong.modular.expect +++ b/pkg/front_end/testcases/dart2js/invalid_redirection.dart.strong.modular.expect @@ -20,13 +20,13 @@ class A extends core::Object implements self: return new self::A::•(); } class B extends core::Object { - static factory test05(core::int incompatible = #C1) → self::B + static factory test05(core::int incompatible) → self::B return invalid-expression "pkg/front_end/testcases/dart2js/invalid_redirection.dart:13:40: Error: The constructor function type 'A Function()' isn't a subtype of 'B 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; ^"; - static synthetic method _#test05#tearOff(core::int incompatible = #C1) → self::B + static synthetic method _#test05#tearOff(core::int incompatible) → self::B return invalid-expression "pkg/front_end/testcases/dart2js/invalid_redirection.dart:13:40: Error: The constructor function type 'A Function()' isn't a subtype of 'B 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; ^"; } - -constants { - #C1 = null -} diff --git a/pkg/front_end/testcases/dart2js/invalid_redirection.dart.strong.transformed.expect b/pkg/front_end/testcases/dart2js/invalid_redirection.dart.strong.transformed.expect index 23807c3cded..c104e78d26e 100644 --- a/pkg/front_end/testcases/dart2js/invalid_redirection.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/dart2js/invalid_redirection.dart.strong.transformed.expect @@ -20,13 +20,13 @@ class A extends core::Object implements self: return new self::A::•(); } class B extends core::Object { - static factory test05(core::int incompatible = #C1) → self::B + static factory test05(core::int incompatible) → self::B return invalid-expression "pkg/front_end/testcases/dart2js/invalid_redirection.dart:13:40: Error: The constructor function type 'A Function()' isn't a subtype of 'B 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; ^"; - static synthetic method _#test05#tearOff(core::int incompatible = #C1) → self::B + static synthetic method _#test05#tearOff(core::int incompatible) → self::B return invalid-expression "pkg/front_end/testcases/dart2js/invalid_redirection.dart:13:40: Error: The constructor function type 'A Function()' isn't a subtype of 'B 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; ^"; } - -constants { - #C1 = null -} diff --git a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.outline.expect b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.outline.expect index f55d2e8d154..282557331cd 100644 --- a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.outline.expect +++ b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.outline.expect @@ -28,12 +28,12 @@ class Class extends core::Object { static synthetic method /* from org-dartlang-testcase:///patch_lib.dart */ _#fact#tearOff({has-declared-initializer core::bool defaultValue, required self2::Class::_#fact#tearOff::T% value}) → self2::Class return self2::Class::fact(defaultValue: defaultValue, value: value); @_in::patch - static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = null, required self2::Class::redirect::T% value}) → self2::Class /* redirection-target: self2::ClassImpl::•*/ + static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = true, required self2::Class::redirect::T% value}) → self2::Class /* redirection-target: self2::ClassImpl::•*/ return new self2::ClassImpl::•(defaultValue: defaultValue, value: value); static synthetic method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect#tearOff({core::bool defaultValue, required self2::Class::_#redirect#tearOff::T% value}) → self2::Class return new self2::ClassImpl::•(defaultValue: defaultValue, value: value); @_in::patch - static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2({core::bool defaultValue = null, required self2::Class::redirect2::T% value}) → self2::Class /* redirection-target: self2::ClassImpl::patched*/ + static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2({core::bool defaultValue = true, required self2::Class::redirect2::T% value}) → self2::Class /* redirection-target: self2::ClassImpl::patched*/ return new self2::ClassImpl::patched(defaultValue: defaultValue, value: value); static synthetic method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect2#tearOff({core::bool defaultValue, required self2::Class::_#redirect2#tearOff::T% value}) → self2::Class return new self2::ClassImpl::patched(defaultValue: defaultValue, value: value); diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.strong.expect index 05221d76446..4ab9004a0c3 100644 --- a/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.strong.expect +++ b/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.strong.expect @@ -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 } diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.strong.modular.expect b/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.strong.modular.expect index 05221d76446..4ab9004a0c3 100644 --- a/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.strong.modular.expect +++ b/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.strong.modular.expect @@ -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 } diff --git a/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.strong.transformed.expect index 05221d76446..4ab9004a0c3 100644 --- a/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/constructor_calls.dart.strong.transformed.expect @@ -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 } diff --git a/pkg/front_end/testcases/extension_types/issue53209.dart.strong.expect b/pkg/front_end/testcases/extension_types/issue53209.dart.strong.expect index 34ebc4937b6..8e14e8f8c5a 100644 --- a/pkg/front_end/testcases/extension_types/issue53209.dart.strong.expect +++ b/pkg/front_end/testcases/extension_types/issue53209.dart.strong.expect @@ -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. diff --git a/pkg/front_end/testcases/extension_types/issue53209.dart.strong.modular.expect b/pkg/front_end/testcases/extension_types/issue53209.dart.strong.modular.expect index 34ebc4937b6..8e14e8f8c5a 100644 --- a/pkg/front_end/testcases/extension_types/issue53209.dart.strong.modular.expect +++ b/pkg/front_end/testcases/extension_types/issue53209.dart.strong.modular.expect @@ -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. diff --git a/pkg/front_end/testcases/extension_types/issue53209.dart.strong.transformed.expect b/pkg/front_end/testcases/extension_types/issue53209.dart.strong.transformed.expect index 34ebc4937b6..8e14e8f8c5a 100644 --- a/pkg/front_end/testcases/extension_types/issue53209.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/extension_types/issue53209.dart.strong.transformed.expect @@ -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. diff --git a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.expect b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.expect index 45c6677872b..d5077ec8813 100644 --- a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.expect +++ b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.expect @@ -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 { diff --git a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.modular.expect b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.modular.expect index 45c6677872b..d5077ec8813 100644 --- a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.modular.expect +++ b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.modular.expect @@ -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 { diff --git a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.transformed.expect b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.transformed.expect index 45c6677872b..d5077ec8813 100644 --- a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.transformed.expect @@ -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 { diff --git a/pkg/front_end/testcases/general/factory_patch/main.dart.strong.expect b/pkg/front_end/testcases/general/factory_patch/main.dart.strong.expect index 2461e05bd1c..78de2b2ed82 100644 --- a/pkg/front_end/testcases/general/factory_patch/main.dart.strong.expect +++ b/pkg/front_end/testcases/general/factory_patch/main.dart.strong.expect @@ -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); } diff --git a/pkg/front_end/testcases/general/factory_patch/main.dart.strong.modular.expect b/pkg/front_end/testcases/general/factory_patch/main.dart.strong.modular.expect index 2461e05bd1c..78de2b2ed82 100644 --- a/pkg/front_end/testcases/general/factory_patch/main.dart.strong.modular.expect +++ b/pkg/front_end/testcases/general/factory_patch/main.dart.strong.modular.expect @@ -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); } diff --git a/pkg/front_end/testcases/general/factory_patch/main.dart.strong.outline.expect b/pkg/front_end/testcases/general/factory_patch/main.dart.strong.outline.expect index 14561fc0ca7..72b8df10623 100644 --- a/pkg/front_end/testcases/general/factory_patch/main.dart.strong.outline.expect +++ b/pkg/front_end/testcases/general/factory_patch/main.dart.strong.outline.expect @@ -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); } diff --git a/pkg/front_end/testcases/general/factory_patch/main.dart.strong.transformed.expect b/pkg/front_end/testcases/general/factory_patch/main.dart.strong.transformed.expect index 2461e05bd1c..78de2b2ed82 100644 --- a/pkg/front_end/testcases/general/factory_patch/main.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/factory_patch/main.dart.strong.transformed.expect @@ -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); } diff --git a/pkg/front_end/testcases/general/issue47036.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue47036.dart.strong.outline.expect index 9f00a8f631a..1bcc8970938 100644 --- a/pkg/front_end/testcases/general/issue47036.dart.strong.outline.expect +++ b/pkg/front_end/testcases/general/issue47036.dart.strong.outline.expect @@ -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 diff --git a/pkg/front_end/testcases/general/issue48548.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue48548.dart.strong.outline.expect index 1619ece2661..c2167f6669b 100644 --- a/pkg/front_end/testcases/general/issue48548.dart.strong.outline.expect +++ b/pkg/front_end/testcases/general/issue48548.dart.strong.outline.expect @@ -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 { diff --git a/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.expect b/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.expect index 71cd9dcdb60..0785adc49f2 100644 --- a/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.expect +++ b/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.expect @@ -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 {} diff --git a/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.modular.expect b/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.modular.expect index 71cd9dcdb60..0785adc49f2 100644 --- a/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.modular.expect +++ b/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.modular.expect @@ -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 {} diff --git a/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.outline.expect b/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.outline.expect index 3641175ab24..9af2073122a 100644 --- a/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.outline.expect @@ -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 diff --git a/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.transformed.expect b/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.transformed.expect index 71cd9dcdb60..0785adc49f2 100644 --- a/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_default_values.dart.strong.transformed.expect @@ -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 {} diff --git a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.expect b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.expect index 1929ef6c387..a74cee0c555 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.expect @@ -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 { diff --git a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.modular.expect b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.modular.expect index 1929ef6c387..a74cee0c555 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.modular.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.modular.expect @@ -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 { diff --git a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.outline.expect index e57dbb8b4d8..78e25419ff5 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.outline.expect @@ -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 diff --git a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.transformed.expect index 1929ef6c387..a74cee0c555 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.strong.transformed.expect @@ -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 { diff --git a/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.outline.expect b/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.outline.expect index fb602b09c82..545ce430127 100644 --- a/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.outline.expect +++ b/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.outline.expect @@ -24,10 +24,10 @@ class Class extends core::Object { static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact({core::bool defaultValue = true, required self2::Class::fact::T% value}) → self2::Class ; @_in::patch - static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = null, required self2::Class::redirect::T% value}) → self2::Class /* redirection-target: self2::ClassImpl::•*/ + static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = true, required self2::Class::redirect::T% value}) → self2::Class /* redirection-target: self2::ClassImpl::•*/ return new self2::ClassImpl::•(defaultValue: defaultValue, value: value); @_in::patch - static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2({core::bool defaultValue = null, required self2::Class::redirect2::T% value}) → self2::Class /* redirection-target: self2::ClassImpl::patched*/ + static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2({core::bool defaultValue = true, required self2::Class::redirect2::T% value}) → self2::Class /* redirection-target: self2::ClassImpl::patched*/ return new self2::ClassImpl::patched(defaultValue: defaultValue, value: value); } @/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch diff --git a/pkg/front_end/testcases/inference/flutter_issue160551.dart.strong.outline.expect b/pkg/front_end/testcases/inference/flutter_issue160551.dart.strong.outline.expect index 12e985c0c96..e99e9cf8a4b 100644 --- a/pkg/front_end/testcases/inference/flutter_issue160551.dart.strong.outline.expect +++ b/pkg/front_end/testcases/inference/flutter_issue160551.dart.strong.outline.expect @@ -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::•*/ + static factory redir({core::double foo = 10.0}) → self::A /* redirection-target: self::B::•*/ return new self::B::•(foo: foo); } class B extends self::A { diff --git a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.expect index 2cd432cd320..70ab8ebe8cb 100644 --- a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.expect @@ -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); diff --git a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.modular.expect b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.modular.expect index 2cd432cd320..70ab8ebe8cb 100644 --- a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.modular.expect +++ b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.modular.expect @@ -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); diff --git a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.outline.expect b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.outline.expect index bcec2d41824..cb570cb7884 100644 --- a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.outline.expect +++ b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.outline.expect @@ -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); diff --git a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.transformed.expect index 73ce2cefea3..9ae0ce7c0af 100644 --- a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.transformed.expect @@ -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); diff --git a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.expect index 207c98cad0f..f55322a2834 100644 --- a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.expect @@ -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 { diff --git a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.modular.expect b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.modular.expect index 207c98cad0f..f55322a2834 100644 --- a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.modular.expect +++ b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.modular.expect @@ -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 { diff --git a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.outline.expect b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.outline.expect index a190091f028..3ecf21ffefb 100644 --- a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.outline.expect +++ b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.outline.expect @@ -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 { diff --git a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.transformed.expect index 207c98cad0f..f55322a2834 100644 --- a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.transformed.expect @@ -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 {