From 300a2ea952b25bb85d28ee320081aedf4d97d2cc Mon Sep 17 00:00:00 2001 From: Alexander Markov Date: Wed, 4 Aug 2021 17:51:07 +0000 Subject: [PATCH] [cfe] Create normal bodies for redirecting factories Replace bogus body created for redirecting factories with a normal body which calls target factory or constructor and forwards all arguments. Such a body can be used by back-ends if they choose to treat redirecting factories as ordinary factories. TEST=ci Fixes https://github.com/dart-lang/sdk/issues/41915 Issue https://github.com/dart-lang/sdk/issues/46231 Change-Id: I62c83bcc9005995e85de049d3d929ca86a75297f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208681 Commit-Queue: Alexander Markov Reviewed-by: Johnni Winther --- .../lib/src/api_unstable/dart2js.dart | 20 +-- .../lib/src/fasta/builder/class_builder.dart | 77 +++++++- .../src/fasta/builder/factory_builder.dart | 9 +- .../lib/src/fasta/kernel/body_builder.dart | 25 +-- .../kernel/redirecting_factory_body.dart | 168 +++++++++--------- .../lib/src/fasta/kernel/verifier.dart | 17 +- .../fasta/source/source_class_builder.dart | 51 +++--- pkg/front_end/messages.status | 2 + pkg/front_end/test/lint_test.status | 1 - .../const_tear_off.dart.strong.expect | 2 +- ...st_tear_off.dart.strong.transformed.expect | 2 +- .../const_tear_off.dart.weak.expect | 2 +- .../const_tear_off.dart.weak.outline.expect | 4 +- ...onst_tear_off.dart.weak.transformed.expect | 2 +- ...explicit_new_as_unnamed.dart.strong.expect | 2 +- ..._as_unnamed.dart.strong.transformed.expect | 2 +- .../explicit_new_as_unnamed.dart.weak.expect | 2 +- ...it_new_as_unnamed.dart.weak.outline.expect | 2 +- ...ew_as_unnamed.dart.weak.transformed.expect | 2 +- .../from_dill/main.dart.strong.expect | 4 +- .../main.dart.strong.transformed.expect | 4 +- .../lowering/from_dill/main.dart.weak.expect | 4 +- .../from_dill/main.dart.weak.outline.expect | 4 +- .../main.dart.weak.transformed.expect | 4 +- ...ecting_factory_tear_off.dart.strong.expect | 10 +- ...ry_tear_off.dart.strong.transformed.expect | 10 +- ...irecting_factory_tear_off.dart.weak.expect | 10 +- ..._factory_tear_off.dart.weak.outline.expect | 10 +- ...tory_tear_off.dart.weak.transformed.expect | 10 +- ...erred_non_proper_rename.dart.strong.expect | 2 +- ...oper_rename.dart.strong.transformed.expect | 4 +- ...nferred_non_proper_rename.dart.weak.expect | 2 +- ...non_proper_rename.dart.weak.outline.expect | 4 +- ...proper_rename.dart.weak.transformed.expect | 4 +- ...sing_redirecting_target.dart.strong.expect | 8 +- ...ting_target.dart.strong.transformed.expect | 8 +- ...issing_redirecting_target.dart.weak.expect | 8 +- ...edirecting_target.dart.weak.outline.expect | 8 +- ...ecting_target.dart.weak.transformed.expect | 8 +- ...ecting_factory_tear_off.dart.strong.expect | 16 +- ...ry_tear_off.dart.strong.transformed.expect | 16 +- ...irecting_factory_tear_off.dart.weak.expect | 16 +- ..._factory_tear_off.dart.weak.outline.expect | 16 +- ...tory_tear_off.dart.weak.transformed.expect | 16 +- ...tear_off_default_values.dart.strong.expect | 4 +- ...ault_values.dart.strong.transformed.expect | 4 +- ...y_tear_off_default_values.dart.weak.expect | 4 +- ...ff_default_values.dart.weak.outline.expect | 4 +- ...efault_values.dart.weak.transformed.expect | 4 +- ..._default_values_complex.dart.strong.expect | 16 +- ...ues_complex.dart.strong.transformed.expect | 16 +- ...ff_default_values_complex.dart.weak.expect | 16 +- ...lt_values_complex.dart.weak.outline.expect | 16 +- ...alues_complex.dart.weak.transformed.expect | 16 +- .../typedef_from_dill/main.dart.strong.expect | 2 +- .../main.dart.strong.transformed.expect | 2 +- .../typedef_from_dill/main.dart.weak.expect | 2 +- .../main.dart.weak.outline.expect | 2 +- .../main.dart.weak.transformed.expect | 2 +- .../typedef_identical.dart.strong.expect | 2 +- ...f_identical.dart.strong.transformed.expect | 2 +- .../typedef_identical.dart.weak.expect | 2 +- ...typedef_identical.dart.weak.outline.expect | 2 +- ...def_identical.dart.weak.transformed.expect | 2 +- ...edirecting_constructors.dart.strong.expect | 6 +- ...onstructors.dart.strong.transformed.expect | 6 +- .../redirecting_constructors.dart.weak.expect | 6 +- ...ting_constructors.dart.weak.outline.expect | 6 +- ..._constructors.dart.weak.transformed.expect | 6 +- ...ecting_factory_tear_off.dart.strong.expect | 16 +- ...ry_tear_off.dart.strong.transformed.expect | 16 +- ...irecting_factory_tear_off.dart.weak.expect | 16 +- ..._factory_tear_off.dart.weak.outline.expect | 16 +- ...tory_tear_off.dart.weak.transformed.expect | 16 +- .../unnamed_constructor.dart.strong.expect | 4 +- ...constructor.dart.strong.transformed.expect | 4 +- .../unnamed_constructor.dart.weak.expect | 4 +- ...named_constructor.dart.weak.outline.expect | 4 +- ...d_constructor.dart.weak.transformed.expect | 4 +- .../abstract_instantiation.dart.weak.expect | 20 ++- ...act_instantiation.dart.weak.outline.expect | 10 +- ...instantiation.dart.weak.transformed.expect | 20 ++- .../factory_patch/main.dart.weak.expect | 2 +- .../main.dart.weak.outline.expect | 2 +- .../main.dart.weak.transformed.expect | 2 +- .../general/invalid_cast.dart.weak.expect | 2 +- .../invalid_cast.dart.weak.outline.expect | 2 +- .../invalid_cast.dart.weak.transformed.expect | 2 +- .../general/issue34714.dart.weak.expect | 2 +- .../issue34714.dart.weak.outline.expect | 2 +- .../issue34714.dart.weak.transformed.expect | 2 +- .../general/issue45003/main.dart.weak.expect | 2 +- .../issue45003/main.dart.weak.outline.expect | 4 +- .../main.dart.weak.transformed.expect | 2 +- .../general/issue45003_2.dart.weak.expect | 2 +- .../issue45003_2.dart.weak.outline.expect | 4 +- .../issue45003_2.dart.weak.transformed.expect | 2 +- .../general/issue45101/main.dart.weak.expect | 2 +- .../issue45101/main.dart.weak.outline.expect | 4 +- .../main.dart.weak.transformed.expect | 2 +- ...sing_toplevel.dart.weak.transformed.expect | 2 +- ...unction_scope.dart.weak.transformed.expect | 4 +- .../general/private_members.dart.weak.expect | 2 +- .../private_members.dart.weak.outline.expect | 2 +- ...ivate_members.dart.weak.transformed.expect | 2 +- .../general/qualified.dart.weak.expect | 4 +- .../qualified.dart.weak.outline.expect | 4 +- .../qualified.dart.weak.transformed.expect | 4 +- .../redirecting_constructor.dart.weak.expect | 2 +- ...cting_constructor.dart.weak.outline.expect | 2 +- ...g_constructor.dart.weak.transformed.expect | 2 +- .../redirecting_factory.dart.weak.expect | 24 ++- ...directing_factory.dart.weak.outline.expect | 12 +- ...cting_factory.dart.weak.transformed.expect | 24 ++- ...ecting_factory_chain_test.dart.weak.expect | 4 +- ...actory_chain_test.dart.weak.outline.expect | 4 +- ...ry_chain_test.dart.weak.transformed.expect | 4 +- ...g_factory_const_inference.dart.weak.expect | 2 +- ...y_const_inference.dart.weak.outline.expect | 2 +- ...nst_inference.dart.weak.transformed.expect | 2 +- ...ing_factory_default_value.dart.weak.expect | 2 +- ...ory_default_value.dart.weak.outline.expect | 2 +- ...default_value.dart.weak.transformed.expect | 2 +- ...ory_invocation_in_invalid.dart.weak.expect | 2 +- ...cation_in_invalid.dart.weak.outline.expect | 2 +- ...irecting_factory_metadata.dart.weak.expect | 2 +- ..._factory_metadata.dart.weak.outline.expect | 2 +- ...tory_metadata.dart.weak.transformed.expect | 2 +- ...cting_factory_simple_test.dart.weak.expect | 2 +- ...ctory_simple_test.dart.weak.outline.expect | 2 +- ...y_simple_test.dart.weak.transformed.expect | 2 +- ...ing_factory_typeargs_test.dart.weak.expect | 2 +- ...ory_typeargs_test.dart.weak.outline.expect | 2 +- ...typeargs_test.dart.weak.transformed.expect | 2 +- ...ng_factory_typeparam_test.dart.weak.expect | 2 +- ...ry_typeparam_test.dart.weak.outline.expect | 2 +- ...ypeparam_test.dart.weak.transformed.expect | 2 +- ...tory_typeparambounds_test.dart.weak.expect | 2 +- ...eparambounds_test.dart.weak.outline.expect | 2 +- ...ambounds_test.dart.weak.transformed.expect | 2 +- ...tion_chain_type_arguments.dart.weak.expect | 4 +- ...in_type_arguments.dart.weak.outline.expect | 4 +- ...ype_arguments.dart.weak.transformed.expect | 4 +- ...hain_type_arguments_subst.dart.weak.expect | 4 +- ...e_arguments_subst.dart.weak.outline.expect | 4 +- ...guments_subst.dart.weak.transformed.expect | 4 +- ...edirection_type_arguments.dart.weak.expect | 2 +- ...on_type_arguments.dart.weak.outline.expect | 2 +- ...ype_arguments.dart.weak.transformed.expect | 2 +- .../changing_modules_8.yaml.world.1.expect | 4 +- .../crash_test_1.yaml.world.1.expect | 2 +- .../crash_test_1.yaml.world.2.expect | 2 +- ...widget_transform_const.yaml.world.1.expect | 4 +- ...widget_transform_const.yaml.world.2.expect | 4 +- ...widget_transform_const.yaml.world.3.expect | 4 +- .../issue_41976.yaml.world.1.expect | 2 +- .../no_outline_change_11.yaml.world.1.expect | 2 +- .../no_outline_change_11.yaml.world.2.expect | 2 +- ...nge_45_flutter_prime_1.yaml.world.1.expect | 2 +- ...nge_45_flutter_prime_1.yaml.world.2.expect | 2 +- ...ments_redirecting_factory.dart.weak.expect | 2 +- ...directing_factory.dart.weak.outline.expect | 2 +- ...cting_factory.dart.weak.transformed.expect | 2 +- ...ecting_factory_to_factory.dart.weak.expect | 2 +- ...actory_to_factory.dart.weak.outline.expect | 2 +- ...ry_to_factory.dart.weak.transformed.expect | 2 +- .../nnbd/issue42362.dart.strong.expect | 20 +-- .../issue42362.dart.strong.transformed.expect | 20 +-- .../nnbd/issue42362.dart.weak.expect | 20 +-- .../nnbd/issue42362.dart.weak.outline.expect | 20 +-- .../issue42362.dart.weak.transformed.expect | 20 +-- .../nnbd/issue42844_1.dart.strong.expect | 2 +- ...ssue42844_1.dart.strong.transformed.expect | 2 +- .../nnbd/issue42844_1.dart.weak.expect | 2 +- .../issue42844_1.dart.weak.outline.expect | 2 +- .../issue42844_1.dart.weak.transformed.expect | 2 +- .../nnbd/issue42844_2.dart.strong.expect | 2 +- ...ssue42844_2.dart.strong.transformed.expect | 2 +- .../nnbd/issue42844_2.dart.weak.expect | 2 +- .../issue42844_2.dart.weak.outline.expect | 2 +- .../issue42844_2.dart.weak.transformed.expect | 2 +- .../nnbd/issue43211.dart.strong.expect | 2 +- .../issue43211.dart.strong.transformed.expect | 2 +- .../nnbd/issue43211.dart.weak.expect | 2 +- .../nnbd/issue43211.dart.weak.outline.expect | 2 +- .../issue43211.dart.weak.transformed.expect | 2 +- .../nnbd/issue43276.dart.strong.expect | 2 +- .../issue43276.dart.strong.transformed.expect | 2 +- .../nnbd/issue43276.dart.weak.expect | 2 +- .../nnbd/issue43276.dart.weak.outline.expect | 2 +- .../issue43276.dart.weak.transformed.expect | 2 +- .../nnbd/issue43918.dart.strong.expect | 4 +- .../issue43918.dart.strong.transformed.expect | 4 +- .../nnbd/issue43918.dart.weak.expect | 4 +- .../nnbd/issue43918.dart.weak.outline.expect | 4 +- .../issue43918.dart.weak.transformed.expect | 4 +- .../nnbd/override_checks.dart.strong.expect | 10 +- ...ride_checks.dart.strong.transformed.expect | 10 +- .../nnbd/override_checks.dart.weak.expect | 10 +- .../override_checks.dart.weak.outline.expect | 10 +- ...erride_checks.dart.weak.transformed.expect | 10 +- .../redirecting_factory.dart.weak.expect | 2 +- ...directing_factory.dart.weak.outline.expect | 2 +- ...cting_factory.dart.weak.transformed.expect | 2 +- .../main.dart.weak.expect | 20 +-- .../main.dart.weak.outline.expect | 20 +-- .../main.dart.weak.transformed.expect | 20 +-- .../main.dart.weak.expect | 4 +- .../main.dart.weak.outline.expect | 6 +- .../main.dart.weak.transformed.expect | 4 +- .../issue45051.dart.strong.expect | 4 +- .../issue45051.dart.strong.transformed.expect | 4 +- .../issue45051.dart.weak.expect | 4 +- .../issue45051.dart.weak.outline.expect | 4 +- .../issue45051.dart.weak.transformed.expect | 4 +- .../issue45519_2.dart.strong.expect | 4 +- ...ssue45519_2.dart.strong.transformed.expect | 4 +- .../issue45519_2.dart.weak.expect | 4 +- .../issue45519_2.dart.weak.outline.expect | 4 +- .../issue45519_2.dart.weak.transformed.expect | 4 +- .../rasta/class_hierarchy.dart.weak.expect | 10 +- .../class_hierarchy.dart.weak.outline.expect | 4 +- ...ass_hierarchy.dart.weak.transformed.expect | 10 +- .../rasta/generic_factory.dart.weak.expect | 42 +++-- .../generic_factory.dart.weak.outline.expect | 22 ++- ...neric_factory.dart.weak.transformed.expect | 42 +++-- .../rasta/issue_000044.dart.weak.expect | 2 +- .../issue_000044.dart.weak.outline.expect | 2 +- .../issue_000044.dart.weak.transformed.expect | 2 +- .../rasta/issue_000067.dart.weak.expect | 4 +- .../issue_000067.dart.weak.outline.expect | 4 +- .../issue_000067.dart.weak.transformed.expect | 4 +- .../regress/issue_35259.dart.weak.expect | 4 +- .../issue_35259.dart.weak.outline.expect | 4 +- .../issue_35259.dart.weak.transformed.expect | 4 +- .../regress/issue_35260.dart.weak.expect | 2 +- .../issue_35260.dart.weak.outline.expect | 2 +- .../issue_35260.dart.weak.transformed.expect | 2 +- .../regress/issue_35266.dart.weak.expect | 12 +- .../issue_35266.dart.weak.outline.expect | 6 +- .../issue_35266.dart.weak.transformed.expect | 12 +- .../testcases/text_serialization.status | 1 + pkg/front_end/testcases/weak.status | 1 + pkg/kernel/lib/type_checker.dart | 2 +- pkg/vm/lib/transformations/lowering.dart | 6 + .../constructor/default_factory2_test.dart | 2 - tests/language/factory/factory_test.dart | 3 - .../factory/redirection3_cyclic_test.dart | 6 +- tests/language/interface/interface_test.dart | 2 +- .../redirecting/factory_malbounded_test.dart | 7 +- tests/language/regress/regress23038_test.dart | 1 - .../constructor/default_factory2_test.dart | 2 - tests/language_2/factory/factory_test.dart | 3 - .../factory/redirection3_cyclic_test.dart | 6 +- .../language_2/interface/interface_test.dart | 2 +- .../redirecting/factory_malbounded_test.dart | 7 +- .../language_2/regress/regress23038_test.dart | 1 - 257 files changed, 969 insertions(+), 769 deletions(-) diff --git a/pkg/front_end/lib/src/api_unstable/dart2js.dart b/pkg/front_end/lib/src/api_unstable/dart2js.dart index ee007f5d261..e811ba1fe73 100644 --- a/pkg/front_end/lib/src/api_unstable/dart2js.dart +++ b/pkg/front_end/lib/src/api_unstable/dart2js.dart @@ -12,7 +12,7 @@ import 'package:_fe_analyzer_shared/src/messages/severity.dart' show Severity; import 'package:_fe_analyzer_shared/src/scanner/scanner.dart' show StringToken; -import 'package:kernel/kernel.dart' show Component, Statement; +import 'package:kernel/kernel.dart' show Component; import 'package:kernel/ast.dart' as ir; @@ -37,8 +37,6 @@ import '../fasta/compiler_context.dart' show CompilerContext; import '../kernel_generator_impl.dart' show generateKernelInternal; -import '../fasta/kernel/redirecting_factory_body.dart' as redirecting; - import 'compiler_state.dart' show InitializedCompilerState; import 'util.dart' show equalLists, equalMaps, equalSets; @@ -242,18 +240,4 @@ Iterable getSupportedLibraryNames( /// constructor. // TODO(sigmund): Delete this API once `member.isRedirectingFactory` // is implemented correctly for patch files (Issue #33495). -bool isRedirectingFactory(ir.Procedure member) { - if (member.kind == ir.ProcedureKind.Factory) { - Statement? body = member.function.body; - if (body is redirecting.RedirectingFactoryBody) return true; - if (body is ir.ExpressionStatement) { - ir.Expression expression = body.expression; - if (expression is ir.Let) { - if (expression.variable.name == redirecting.letName) { - return true; - } - } - } - } - return false; -} +bool isRedirectingFactory(ir.Procedure member) => member.isRedirectingFactory; diff --git a/pkg/front_end/lib/src/fasta/builder/class_builder.dart b/pkg/front_end/lib/src/fasta/builder/class_builder.dart index 4de08b96825..5d66e3c13fe 100644 --- a/pkg/front_end/lib/src/fasta/builder/class_builder.dart +++ b/pkg/front_end/lib/src/fasta/builder/class_builder.dart @@ -44,6 +44,8 @@ import '../fasta_codes.dart'; import '../kernel/kernel_helper.dart'; +import '../kernel/redirecting_factory_body.dart' show RedirectingFactoryBody; + import '../loader.dart'; import '../modifier.dart'; @@ -921,7 +923,8 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl targetNode.computeFunctionType(library.nonNullable); if (typeArguments != null && targetFunctionType.typeParameters.length != typeArguments.length) { - addProblem( + addProblemForRedirectingFactory( + factory, templateTypeArgumentMismatch .withArguments(targetFunctionType.typeParameters.length), redirectionTarget.charOffset, @@ -946,7 +949,8 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl Loader loader = library.loader; if (!typeEnvironment.isSubtypeOf(typeArgument, typeParameterBound, SubtypeCheckMode.ignoringNullabilities)) { - addProblem( + addProblemForRedirectingFactory( + factory, templateRedirectingFactoryIncompatibleTypeArgument.withArguments( typeArgument, typeParameterBound, @@ -957,7 +961,8 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl } else if (library.isNonNullableByDefault && loader is SourceLoader) { if (!typeEnvironment.isSubtypeOf(typeArgument, typeParameterBound, SubtypeCheckMode.withNullabilities)) { - addProblem( + addProblemForRedirectingFactory( + factory, templateRedirectingFactoryIncompatibleTypeArgument .withArguments(typeArgument, typeParameterBound, library.isNonNullableByDefault), @@ -1002,9 +1007,65 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl } } + bool _isCyclicRedirectingFactory(RedirectingFactoryBuilder factory) { + // We use the [tortoise and hare algorithm] + // (https://en.wikipedia.org/wiki/Cycle_detection#Tortoise_and_hare) to + // handle cycles. + Builder? tortoise = factory; + Builder? hare = factory.redirectionTarget.target; + if (hare == factory) { + return true; + } + while (tortoise != hare) { + // Hare moves 2 steps forward. + if (hare is! RedirectingFactoryBuilder) { + return false; + } + hare = hare.redirectionTarget.target; + if (hare == factory) { + return true; + } + if (hare is! RedirectingFactoryBuilder) { + return false; + } + hare = hare.redirectionTarget.target; + if (hare == factory) { + return true; + } + // Tortoise moves one step forward. No need to test type of tortoise + // as it follows hare which already checked types. + tortoise = + (tortoise as RedirectingFactoryBuilder).redirectionTarget.target; + } + // Cycle found, but original factory doesn't belong to a cycle. + return false; + } + + void addProblemForRedirectingFactory(RedirectingFactoryBuilder factory, + Message message, int charOffset, int length) { + addProblem(message, charOffset, length); + String text = library.loader.target.context + .format( + message.withLocation(fileUri, charOffset, length), Severity.error) + .plain; + factory.body = new RedirectingFactoryBody.error(text); + } + @override void checkRedirectingFactory( RedirectingFactoryBuilder factory, TypeEnvironment typeEnvironment) { + // Check that factory declaration is not cyclic. + if (_isCyclicRedirectingFactory(factory)) { + addProblemForRedirectingFactory( + factory, + templateCyclicRedirectingFactoryConstructors + .withArguments("${factory.member.enclosingClass!.name}" + "${factory.name == '' ? '' : '.${factory.name}'}"), + factory.charOffset, + noLength); + return; + } + // The factory type cannot contain any type parameters other than those of // its enclosing class, because constructors cannot specify type parameters // of their own. @@ -1016,13 +1077,16 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl // TODO(hillerstrom): It would be preferable to know whether a failure // happened during [_computeRedirecteeType]. - if (redirecteeType == null) return; + if (redirecteeType == null) { + return; + } // Check whether [redirecteeType] <: [factoryType]. Loader loader = library.loader; if (!typeEnvironment.isSubtypeOf( redirecteeType, factoryType, SubtypeCheckMode.ignoringNullabilities)) { - addProblem( + addProblemForRedirectingFactory( + factory, templateIncompatibleRedirecteeFunctionType.withArguments( redirecteeType, factoryType, library.isNonNullableByDefault), factory.redirectionTarget.charOffset, @@ -1030,7 +1094,8 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl } else if (library.isNonNullableByDefault && loader is SourceLoader) { if (!typeEnvironment.isSubtypeOf( redirecteeType, factoryType, SubtypeCheckMode.withNullabilities)) { - addProblem( + addProblemForRedirectingFactory( + factory, templateIncompatibleRedirecteeFunctionType.withArguments( redirecteeType, factoryType, library.isNonNullableByDefault), factory.redirectionTarget.charOffset, diff --git a/pkg/front_end/lib/src/fasta/builder/factory_builder.dart b/pkg/front_end/lib/src/fasta/builder/factory_builder.dart index 22e54cbb676..2abc7cf0db7 100644 --- a/pkg/front_end/lib/src/fasta/builder/factory_builder.dart +++ b/pkg/front_end/lib/src/fasta/builder/factory_builder.dart @@ -207,7 +207,7 @@ class SourceFactoryBuilder extends FunctionBuilderImpl { if (bodyInternal != null) { unexpected("null", "${bodyInternal.runtimeType}", charOffset, fileUri); } - bodyInternal = new RedirectingFactoryBody(target, typeArguments); + bodyInternal = new RedirectingFactoryBody(target, typeArguments, function); function.body = bodyInternal; bodyInternal?.parent = function; if (isPatch) { @@ -307,7 +307,7 @@ class RedirectingFactoryBuilder extends SourceFactoryBuilder { noLength, fileUri); } - bodyInternal = new RedirectingFactoryBody(target, typeArguments); + bodyInternal = new RedirectingFactoryBody(target, typeArguments, function); function.body = bodyInternal; bodyInternal?.parent = function; _procedure.isRedirectingFactory = true; @@ -436,7 +436,10 @@ class RedirectingFactoryBuilder extends SourceFactoryBuilder { target.enclosingClass!.typeParameters.length, const DynamicType(), growable: true); } - member.function!.body = new RedirectingFactoryBody(target, typeArguments); + + function.body = + new RedirectingFactoryBody(target, typeArguments, function); + function.body!.parent = function; } if (_factoryTearOff != null && (target is Constructor || target is Procedure && target.isFactory)) { diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart index b550c58ce35..3a6544e716c 100644 --- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart +++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart @@ -1247,13 +1247,10 @@ class BodyBuilder extends ScopeListener if (redirectingFactoryBody != null) { // If the redirection target is itself a redirecting factory, it means // that it is unresolved. - assert(redirectingFactoryBody.isUnresolved); - String errorName = redirectingFactoryBody.unresolvedName!; - replacementNode = buildProblem( - fasta.templateMethodNotFound.withArguments(errorName), - fileOffset, - noLength, - suppressMessage: true); + assert(redirectingFactoryBody.isError); + String errorMessage = redirectingFactoryBody.errorMessage!; + replacementNode = new InvalidExpression(errorMessage) + ..fileOffset = fileOffset; } else { Substitution substitution = Substitution.fromPairs( initialTarget.function.typeParameters, arguments.types); @@ -2373,10 +2370,8 @@ class BodyBuilder extends ScopeListener push(forest.createStringLiteral(offsetForToken(token), value)); } else { int count = 1 + interpolationCount * 2; - List? parts = const FixedNullableList().popNonNullable( - stack, - count, - /* dummyValue = */ 0); + List? parts = const FixedNullableList() + .popNonNullable(stack, count, /* dummyValue = */ 0); if (parts == null) { push(new ParserRecovery(endToken.charOffset)); return; @@ -6427,12 +6422,8 @@ class BodyBuilder extends ScopeListener allowPotentiallyConstantType: allowPotentiallyConstantType); if (message == null) return unresolved; return new UnresolvedType( - new NamedTypeBuilder( - typeParameter.name!, - builder.nullabilityBuilder, - /* arguments = */ null, - unresolved.fileUri, - unresolved.charOffset) + new NamedTypeBuilder(typeParameter.name!, builder.nullabilityBuilder, + /* arguments = */ null, unresolved.fileUri, unresolved.charOffset) ..bind(new InvalidTypeDeclarationBuilder( typeParameter.name!, message)), unresolved.charOffset, diff --git a/pkg/front_end/lib/src/fasta/kernel/redirecting_factory_body.dart b/pkg/front_end/lib/src/fasta/kernel/redirecting_factory_body.dart index 4f63d8b3ed1..9debfe6c668 100644 --- a/pkg/front_end/lib/src/fasta/kernel/redirecting_factory_body.dart +++ b/pkg/front_end/lib/src/fasta/kernel/redirecting_factory_body.dart @@ -31,48 +31,63 @@ const String letName = "#redirecting_factory"; /// the redirection target in a factory method body. const String varNamePrefix = "#typeArg"; -class RedirectingFactoryBody extends ExpressionStatement { - RedirectingFactoryBody.internal(Expression value, - [List? typeArguments]) - : super(new Let(new VariableDeclaration(letName, initializer: value), - encodeTypeArguments(typeArguments))); +class RedirectingFactoryBody extends ReturnStatement { + RedirectingFactoryBody._internal(Expression value) : super(value); - RedirectingFactoryBody(Member target, [List? typeArguments]) - : this.internal(new StaticGet(target), typeArguments); + RedirectingFactoryBody( + Member target, List typeArguments, FunctionNode function) + : this._internal(_makeForwardingCall(target, typeArguments, function)); - RedirectingFactoryBody.unresolved(String name) - : this.internal(new StringLiteral(name)); + RedirectingFactoryBody.error(String errorMessage) + : this._internal(new InvalidExpression(errorMessage)); Member? get target { - dynamic value = getValue(expression); - return value is StaticGet ? value.target : null; + final Expression? value = this.expression; + if (value is StaticInvocation) { + return value.target; + } else if (value is ConstructorInvocation) { + return value.target; + } + return null; } - String? get unresolvedName { - dynamic value = getValue(expression); - return value is StringLiteral ? value.value : null; + String? get errorMessage { + final Expression? value = this.expression; + return value is InvalidExpression ? value.message : null; } - bool get isUnresolved => unresolvedName != null; + bool get isError => errorMessage != null; List? get typeArguments { - if (expression is Let) { - Let bodyExpression = expression as Let; - if (bodyExpression.variable.name == letName) { - return decodeTypeArguments(bodyExpression.body); - } + final Expression? value = this.expression; + if (value is InvocationExpression) { + return value.arguments.types; } return null; } - static getValue(Expression expression) { - if (expression is Let) { - VariableDeclaration variable = expression.variable; - if (variable.name == letName) { - return variable.initializer; - } + static Expression _makeForwardingCall( + Member target, List typeArguments, FunctionNode function) { + final List positional = function.positionalParameters + .map((v) => new VariableGet(v)..fileOffset = v.fileOffset) + .toList(); + final List named = function.namedParameters + .map((v) => new NamedExpression( + v.name!, new VariableGet(v)..fileOffset = v.fileOffset) + ..fileOffset = v.fileOffset) + .toList(); + final Arguments args = + new Arguments(positional, named: named, types: typeArguments); + if (target is Procedure) { + return new StaticInvocation(target, args) + ..fileOffset = function.fileOffset; + } else if (target is Constructor) { + return new ConstructorInvocation(target, args) + ..fileOffset = function.fileOffset; + } else { + throw 'Unexpected target for redirecting factory:' + ' ${target.runtimeType} $target'; } - return null; } static void restoreFromDill(Procedure factory) { @@ -80,41 +95,51 @@ class RedirectingFactoryBody extends ExpressionStatement { // dill files. See `ClassBuilder.addRedirectingConstructor` in // [kernel_class_builder.dart](kernel_class_builder.dart). FunctionNode function = factory.function; - ExpressionStatement statement = function.body as ExpressionStatement; - List? typeArguments; - if (statement.expression is Let) { - Let expression = statement.expression as Let; - typeArguments = decodeTypeArguments(expression.body); - } - function.body = new RedirectingFactoryBody.internal( - getValue(statement.expression), typeArguments) + Expression value = (function.body as ReturnStatement).expression!; + function.body = new RedirectingFactoryBody._internal(value) ..parent = function; } static bool hasRedirectingFactoryBodyShape(Procedure factory) { - if (factory.function.body is! ExpressionStatement) return false; - Expression body = (factory.function.body as ExpressionStatement).expression; - if (body is Let && - body.variable.name == letName && - body.variable.type is DynamicType && - body.variable.initializer is StaticGet) { - Expression currentArgument = body.body; - int argumentCount = 0; - while (currentArgument is! InvalidExpression) { - Expression argument = currentArgument; - if (argument is Let) { - String argumentName = "${varNamePrefix}${argumentCount}"; - if (argument.variable.name != argumentName) { - return false; - } - if (argument.variable.initializer is! NullLiteral) { - return false; - } - currentArgument = argument.body; - ++argumentCount; - } else { + final FunctionNode function = factory.function; + final Statement? body = function.body; + if (body is! ReturnStatement) return false; + final Expression? value = body.expression; + if (body is InvalidExpression) { + return true; + } else if (value is StaticInvocation || value is ConstructorInvocation) { + // Verify that invocation forwards all arguments. + final Arguments args = (value as InvocationExpression).arguments; + if (args.positional.length != function.positionalParameters.length) { + return false; + } + int i = 0; + for (Expression arg in args.positional) { + if (arg is! VariableGet) { return false; } + if (arg.variable != function.positionalParameters[i]) { + return false; + } + ++i; + } + if (args.named.length != function.namedParameters.length) { + return false; + } + i = 0; + for (NamedExpression arg in args.named) { + final Expression value = arg.value; + if (value is! VariableGet) { + return false; + } + final VariableDeclaration param = function.namedParameters[i]; + if (value.variable != param) { + return false; + } + if (arg.name != param.name) { + return false; + } + ++i; } return true; } else { @@ -122,33 +147,6 @@ class RedirectingFactoryBody extends ExpressionStatement { } } - static Expression encodeTypeArguments(List? typeArguments) { - Expression result = new InvalidExpression(null); - if (typeArguments == null) { - return result; - } - for (int i = typeArguments.length - 1; i >= 0; i--) { - result = new Let( - new VariableDeclaration("$varNamePrefix$i", - type: typeArguments[i], initializer: new NullLiteral()), - result); - } - return result; - } - - static List? decodeTypeArguments(Expression encoded) { - if (encoded is InvalidExpression) { - return null; - } - List result = []; - while (encoded is Let) { - Let head = encoded; - result.add(head.variable.type); - encoded = head.body; - } - return result; - } - @override String toString() { return "RedirectingFactoryBody(${toStringInternal()})"; @@ -194,10 +192,10 @@ RedirectionTarget? getRedirectionTarget(Procedure member, EnsureLoaded helper) { helper.ensureLoaded(hare); RedirectingFactoryBody? hareBody = getRedirectingFactoryBody(hare); while (tortoise != hare) { - if (tortoiseBody?.isUnresolved ?? true) { + if (tortoiseBody == null || tortoiseBody.isError) { return new RedirectionTarget(tortoise, typeArguments); } - Member nextTortoise = tortoiseBody!.target!; + Member nextTortoise = tortoiseBody.target!; helper.ensureLoaded(nextTortoise); List? nextTypeArguments = tortoiseBody.typeArguments; if (nextTypeArguments != null) { diff --git a/pkg/front_end/lib/src/fasta/kernel/verifier.dart b/pkg/front_end/lib/src/fasta/kernel/verifier.dart index 7c313ecf26f..0a3ac49c989 100644 --- a/pkg/front_end/lib/src/fasta/kernel/verifier.dart +++ b/pkg/front_end/lib/src/fasta/kernel/verifier.dart @@ -29,10 +29,7 @@ import '../fasta_codes.dart' import '../type_inference/type_schema.dart' show UnknownType; import 'redirecting_factory_body.dart' - show - RedirectingFactoryBody, - getRedirectingFactoryBody, - isRedirectingFactory; + show RedirectingFactoryBody, isRedirectingFactory; List verifyComponent(Component component, Target target, {bool? isOutline, bool? afterConst, bool skipPlatform: false}) { @@ -284,13 +281,11 @@ class FastaVerifyingVisitor extends VerifyingVisitor { bool hasBody = isRedirectingFactory(node) || RedirectingFactoryBody.hasRedirectingFactoryBodyShape(node); bool hasFlag = node.isRedirectingFactory; - if (hasBody != hasFlag) { - String hasBodyString = hasBody ? "has" : "doesn't have"; - String hasFlagString = hasFlag ? "has" : "doesn't have"; + if (hasFlag && !hasBody) { problem( node, - "Procedure '${node.name}' ${hasBodyString} a body " - "of a redirecting factory, but ${hasFlagString} the " + "Procedure '${node.name}' doesn't have a body " + "of a redirecting factory, but has the " "'isRedirectingFactory' bit set."); } @@ -429,10 +424,6 @@ class FastaVerifyingVisitor extends VerifyingVisitor { void visitStaticInvocation(StaticInvocation node) { enterTreeNode(node); super.visitStaticInvocation(node); - RedirectingFactoryBody? body = getRedirectingFactoryBody(node.target); - if (body != null) { - problem(node, "Attempt to invoke redirecting factory."); - } exitTreeNode(node); } diff --git a/pkg/front_end/lib/src/fasta/source/source_class_builder.dart b/pkg/front_end/lib/src/fasta/source/source_class_builder.dart index 84ae1c41c00..28f737349a5 100644 --- a/pkg/front_end/lib/src/fasta/source/source_class_builder.dart +++ b/pkg/front_end/lib/src/fasta/source/source_class_builder.dart @@ -39,7 +39,6 @@ import '../fasta_codes.dart'; import '../kernel/combined_member_signature.dart'; import '../kernel/kernel_builder.dart' show compareProcedures; import '../kernel/kernel_target.dart' show KernelTarget; -import '../kernel/redirecting_factory_body.dart' show RedirectingFactoryBody; import '../kernel/redirecting_factory_body.dart' show redirectingName; import '../kernel/type_algorithms.dart' show Variance, computeTypeVariableBuilderVariance; @@ -937,42 +936,44 @@ class SourceClassBuilder extends ClassBuilderImpl _addRedirectingConstructor( declaration, library, getterReference); } + Member? targetNode; if (targetBuilder is FunctionBuilder) { - List typeArguments = declaration.typeArguments ?? - new List.filled( - targetBuilder - .member.enclosingClass!.typeParameters.length, - const UnknownType()); - declaration.setRedirectingFactoryBody( - targetBuilder.member, typeArguments); + targetNode = targetBuilder.member; } else if (targetBuilder is DillMemberBuilder) { - List typeArguments = declaration.typeArguments ?? - new List.filled( - targetBuilder - .member.enclosingClass!.typeParameters.length, - const UnknownType()); - declaration.setRedirectingFactoryBody( - targetBuilder.member, typeArguments); + targetNode = targetBuilder.member; } else if (targetBuilder is AmbiguousBuilder) { - addProblem( + addProblemForRedirectingFactory( + declaration, templateDuplicatedDeclarationUse .withArguments(redirectionTarget.fullNameForErrors), redirectionTarget.charOffset, noLength); - // CoreTypes aren't computed yet, and this is the outline - // phase. So we can't and shouldn't create a method body. - declaration.body = new RedirectingFactoryBody.unresolved( - redirectionTarget.fullNameForErrors); } else { - addProblem( + addProblemForRedirectingFactory( + declaration, templateRedirectionTargetNotFound .withArguments(redirectionTarget.fullNameForErrors), redirectionTarget.charOffset, noLength); - // CoreTypes aren't computed yet, and this is the outline - // phase. So we can't and shouldn't create a method body. - declaration.body = new RedirectingFactoryBody.unresolved( - redirectionTarget.fullNameForErrors); + } + if (targetNode != null && + targetNode is Constructor && + targetNode.enclosingClass.isAbstract) { + addProblemForRedirectingFactory( + declaration, + templateAbstractRedirectedClassInstantiation + .withArguments(redirectionTarget.fullNameForErrors), + redirectionTarget.charOffset, + noLength); + targetNode = null; + } + if (targetNode != null) { + List typeArguments = declaration.typeArguments ?? + new List.filled( + targetNode.enclosingClass!.typeParameters.length, + const UnknownType()); + declaration.setRedirectingFactoryBody( + targetNode, typeArguments); } } } diff --git a/pkg/front_end/messages.status b/pkg/front_end/messages.status index 8eb1f8df4e1..a9154acc456 100644 --- a/pkg/front_end/messages.status +++ b/pkg/front_end/messages.status @@ -169,6 +169,8 @@ CyclicClassHierarchy/part_wrapped_script1: Fail CyclicClassHierarchy/part_wrapped_script2: Fail CyclicClassHierarchy/script1: Fail # We report an error for each class involved in the cycle. CyclicClassHierarchy/script2: Fail # We report an error for each class involved in the cycle. +CyclicRedirectingFactoryConstructors/part_wrapped_script: Fail # Error is reported for each factory involved in the cycle. +CyclicRedirectingFactoryConstructors/script: Fail # Error is reported for each factory involved in the cycle. CyclicTypedef/example: Fail DefaultListConstructorError/analyzerCode: Fail DefaultListConstructorError/example: Fail diff --git a/pkg/front_end/test/lint_test.status b/pkg/front_end/test/lint_test.status index 25fc133b267..83361a28ef2 100644 --- a/pkg/front_end/test/lint_test.status +++ b/pkg/front_end/test/lint_test.status @@ -33,7 +33,6 @@ front_end/lib/src/fasta/scanner/string_scanner/ImportsTwice: Fail front_end/lib/src/fasta/scanner/token/ImportsTwice: Fail front_end/lib/src/fasta/scanner/utf8_bytes_scanner/ImportsTwice: Fail front_end/lib/src/fasta/source/scope_listener/Exports: Fail -front_end/lib/src/fasta/source/source_class_builder/ImportsTwice: Fail front_end/lib/src/fasta/source/value_kinds/ImportsTwice: Fail front_end/lib/src/testing/id_testing_helper/Exports: Fail kernel/lib/ast/Exports: Fail diff --git a/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.strong.expect index cfec78ac064..04e78be57b9 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.strong.expect @@ -12,7 +12,7 @@ class A extends core::Object { static factory fact() → self::A return new self::A::•(); static factory redirect() → self::A - let dynamic #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression; + return new self::A::•(); } static const field () → self::A a = #C1; static const field () → self::A b = #C2; diff --git a/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.strong.transformed.expect index d84286f290b..04e78be57b9 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.strong.transformed.expect @@ -12,7 +12,7 @@ class A extends core::Object { static factory fact() → self::A return new self::A::•(); static factory redirect() → self::A - let Never #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression; + return new self::A::•(); } static const field () → self::A a = #C1; static const field () → self::A b = #C2; diff --git a/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.weak.expect index 7412c4355cd..0d1f1e30259 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.weak.expect @@ -12,7 +12,7 @@ class A extends core::Object { static factory fact() → self::A return new self::A::•(); static factory redirect() → self::A - let dynamic #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression; + return new self::A::•(); } static const field () → self::A a = #C1; static const field () → self::A b = #C2; diff --git a/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.weak.outline.expect index b93adaec89c..960caf11424 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.weak.outline.expect @@ -11,7 +11,7 @@ class A extends core::Object { static factory fact() → self::A ; static factory redirect() → self::A - let dynamic #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression; + return new self::A::•(); } static const field () → self::A a = self::A::•; static const field () → self::A b = self::A::•; @@ -54,4 +54,4 @@ Evaluated: TypedefTearOff @ org-dartlang-testcase:///const_tear_off.dart:28:11 - Evaluated: Instantiation @ org-dartlang-testcase:///const_tear_off.dart:29:11 -> InstantiationConstant(A.fact) Evaluated: TypedefTearOff @ org-dartlang-testcase:///const_tear_off.dart:30:11 -> TypedefTearOffConstant(A.redirect) Evaluated: Instantiation @ org-dartlang-testcase:///const_tear_off.dart:31:11 -> InstantiationConstant(A.redirect) -Extra constant evaluation: evaluated: 23, effectively constant: 18 +Extra constant evaluation: evaluated: 21, effectively constant: 18 diff --git a/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.weak.transformed.expect index 0a0394c728c..0d1f1e30259 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/const_tear_off.dart.weak.transformed.expect @@ -12,7 +12,7 @@ class A extends core::Object { static factory fact() → self::A return new self::A::•(); static factory redirect() → self::A - let Never #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression; + return new self::A::•(); } static const field () → self::A a = #C1; static const field () → self::A b = #C2; diff --git a/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.strong.expect index 331bcc5f9d7..8954e19096e 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.strong.expect @@ -96,6 +96,6 @@ class E4 extends core::Object { : super core::Object::•() ; static factory •() → self::E4 - let dynamic #redirecting_factory = self::E4::_ in invalid-expression; + return new self::E4::_(); } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.strong.transformed.expect index fdbc0b6906e..8954e19096e 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.strong.transformed.expect @@ -96,6 +96,6 @@ class E4 extends core::Object { : super core::Object::•() ; static factory •() → self::E4 - let Never #redirecting_factory = self::E4::_ in invalid-expression; + return new self::E4::_(); } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.weak.expect index 331bcc5f9d7..8954e19096e 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.weak.expect @@ -96,6 +96,6 @@ class E4 extends core::Object { : super core::Object::•() ; static factory •() → self::E4 - let dynamic #redirecting_factory = self::E4::_ in invalid-expression; + return new self::E4::_(); } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.weak.outline.expect index 34ae47c39b3..d7f841c2e07 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.weak.outline.expect @@ -86,7 +86,7 @@ class E4 extends core::Object { constructor _() → self::E4 ; static factory •() → self::E4 - let dynamic #redirecting_factory = self::E4::_ in invalid-expression; + return new self::E4::_(); } static method main() → dynamic ; diff --git a/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.weak.transformed.expect index fdbc0b6906e..8954e19096e 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/explicit_new_as_unnamed.dart.weak.transformed.expect @@ -96,6 +96,6 @@ class E4 extends core::Object { : super core::Object::•() ; static factory •() → self::E4 - let Never #redirecting_factory = self::E4::_ in invalid-expression; + return new self::E4::_(); } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.strong.expect index 613a456fce0..287832bcee6 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.strong.expect @@ -194,7 +194,7 @@ class Class2 extends core::Object { static method _#named#tearOff() → mai::Class2 return new mai::Class2::named(); static factory redirect() → mai::Class2 - let dynamic #redirecting_factory = mai::Class2::named in invalid-expression; + return new mai::Class2::named(); static method _#redirect#tearOff() → mai::Class2 return new mai::Class2::named(); } @@ -218,7 +218,7 @@ class Class4 extends core::Object { static method _#new#tearOff() → mai::Class4 return mai::Class4::•(); static factory redirect() → mai::Class4 - let dynamic #redirecting_factory = mai::Class4::_ in let mai::Class4::redirect::T% #typeArg0 = null in invalid-expression; + return new mai::Class4::_(); static method _#redirect#tearOff() → mai::Class4 return new mai::Class4::_(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.strong.transformed.expect index 0a6f7060ef0..bcf1164b701 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.strong.transformed.expect @@ -194,7 +194,7 @@ class Class2 extends core::Object { static method _#named#tearOff() → mai::Class2 return new mai::Class2::named(); static factory redirect() → mai::Class2 - let Never #redirecting_factory = mai::Class2::named in invalid-expression; + return new mai::Class2::named(); static method _#redirect#tearOff() → mai::Class2 return new mai::Class2::named(); } @@ -218,7 +218,7 @@ class Class4 extends core::Object { static method _#new#tearOff() → mai::Class4 return mai::Class4::•(); static factory redirect() → mai::Class4 - let Never #redirecting_factory = mai::Class4::_ in let mai::Class4::redirect::T% #typeArg0 = null in invalid-expression; + return new mai::Class4::_(); static method _#redirect#tearOff() → mai::Class4 return new mai::Class4::_(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.weak.expect index 613a456fce0..287832bcee6 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.weak.expect @@ -194,7 +194,7 @@ class Class2 extends core::Object { static method _#named#tearOff() → mai::Class2 return new mai::Class2::named(); static factory redirect() → mai::Class2 - let dynamic #redirecting_factory = mai::Class2::named in invalid-expression; + return new mai::Class2::named(); static method _#redirect#tearOff() → mai::Class2 return new mai::Class2::named(); } @@ -218,7 +218,7 @@ class Class4 extends core::Object { static method _#new#tearOff() → mai::Class4 return mai::Class4::•(); static factory redirect() → mai::Class4 - let dynamic #redirecting_factory = mai::Class4::_ in let mai::Class4::redirect::T% #typeArg0 = null in invalid-expression; + return new mai::Class4::_(); static method _#redirect#tearOff() → mai::Class4 return new mai::Class4::_(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.weak.outline.expect index a682b1530c2..f71480277e8 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.weak.outline.expect @@ -29,7 +29,7 @@ class Class2 extends core::Object { static method _#named#tearOff() → self2::Class2 return new self2::Class2::named(); static factory redirect() → self2::Class2 - let dynamic #redirecting_factory = self2::Class2::named in invalid-expression; + return new self2::Class2::named(); static method _#redirect#tearOff() → self2::Class2 return new self2::Class2::named(); } @@ -51,7 +51,7 @@ class Class4 extends core::Object { static method _#new#tearOff() → self2::Class4 return self2::Class4::•(); static factory redirect() → self2::Class4 - let dynamic #redirecting_factory = self2::Class4::_ in let self2::Class4::redirect::T% #typeArg0 = null in invalid-expression; + return new self2::Class4::_(); static method _#redirect#tearOff() → self2::Class4 return new self2::Class4::_(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.weak.transformed.expect index 0a6f7060ef0..bcf1164b701 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/from_dill/main.dart.weak.transformed.expect @@ -194,7 +194,7 @@ class Class2 extends core::Object { static method _#named#tearOff() → mai::Class2 return new mai::Class2::named(); static factory redirect() → mai::Class2 - let Never #redirecting_factory = mai::Class2::named in invalid-expression; + return new mai::Class2::named(); static method _#redirect#tearOff() → mai::Class2 return new mai::Class2::named(); } @@ -218,7 +218,7 @@ class Class4 extends core::Object { static method _#new#tearOff() → mai::Class4 return mai::Class4::•(); static factory redirect() → mai::Class4 - let Never #redirecting_factory = mai::Class4::_ in let mai::Class4::redirect::T% #typeArg0 = null in invalid-expression; + return new mai::Class4::_(); static method _#redirect#tearOff() → mai::Class4 return new mai::Class4::_(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.strong.expect index e617e7dee90..31fe5154d64 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.strong.expect @@ -42,7 +42,7 @@ class Class1 extends core::Object { static method _#_#tearOff() → self::Class1 return new self::Class1::_(); static factory •() → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in let self::Class1::•::T% #typeArg0 = null in invalid-expression; + return new self::Class1::_(); static method _#new#tearOff() → self::Class1 return new self::Class1::_(); } @@ -54,7 +54,7 @@ class Class2 extends core::Object { static method _#_#tearOff() → self::Class2 return new self::Class2::_(); static factory •() → self::Class2 - let dynamic #redirecting_factory = self::Class2::_ in let self::Class2::•::T #typeArg0 = null in invalid-expression; + return new self::Class2::_(); static method _#new#tearOff() → self::Class2 return new self::Class2::_(); } @@ -66,7 +66,7 @@ class Class3() → self::Class3 return new self::Class3::_(); static factory •() → self::Class3 - let dynamic #redirecting_factory = self::Class3::_ in let self::Class3::•::T% #typeArg0 = null in let self::Class3::•::S% #typeArg1 = null in invalid-expression; + return new self::Class3::_(); static method _#new#tearOff() → self::Class3 return new self::Class3::_(); } @@ -78,7 +78,7 @@ class Class4 = self::Class4> ex static method _#_#tearOff = self::Class4>() → self::Class4 return new self::Class4::_(); static factory • = self::Class4>() → self::Class4 - let dynamic #redirecting_factory = self::Class4::_ in let self::Class4::•::T #typeArg0 = null in invalid-expression; + return new self::Class4::_(); static method _#new#tearOff = self::Class4>() → self::Class4 return new self::Class4::_(); } @@ -90,7 +90,7 @@ class Class4int extends self::Class4 { static method _#_#tearOff() → self::Class4int return new self::Class4int::_(); static factory •() → self::Class4int - let dynamic #redirecting_factory = self::Class4int::_ in invalid-expression; + return new self::Class4int::_(); static method _#new#tearOff() → self::Class4int return new self::Class4int::_(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.strong.transformed.expect index 93bb73052b0..2b61e14a1e8 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.strong.transformed.expect @@ -42,7 +42,7 @@ class Class1 extends core::Object { static method _#_#tearOff() → self::Class1 return new self::Class1::_(); static factory •() → self::Class1 - let Never #redirecting_factory = self::Class1::_ in let self::Class1::•::T% #typeArg0 = null in invalid-expression; + return new self::Class1::_(); static method _#new#tearOff() → self::Class1 return new self::Class1::_(); } @@ -54,7 +54,7 @@ class Class2 extends core::Object { static method _#_#tearOff() → self::Class2 return new self::Class2::_(); static factory •() → self::Class2 - let Never #redirecting_factory = self::Class2::_ in let self::Class2::•::T #typeArg0 = null in invalid-expression; + return new self::Class2::_(); static method _#new#tearOff() → self::Class2 return new self::Class2::_(); } @@ -66,7 +66,7 @@ class Class3() → self::Class3 return new self::Class3::_(); static factory •() → self::Class3 - let Never #redirecting_factory = self::Class3::_ in let self::Class3::•::T% #typeArg0 = null in let self::Class3::•::S% #typeArg1 = null in invalid-expression; + return new self::Class3::_(); static method _#new#tearOff() → self::Class3 return new self::Class3::_(); } @@ -78,7 +78,7 @@ class Class4 = self::Class4> ex static method _#_#tearOff = self::Class4>() → self::Class4 return new self::Class4::_(); static factory • = self::Class4>() → self::Class4 - let Never #redirecting_factory = self::Class4::_ in let self::Class4::•::T #typeArg0 = null in invalid-expression; + return new self::Class4::_(); static method _#new#tearOff = self::Class4>() → self::Class4 return new self::Class4::_(); } @@ -90,7 +90,7 @@ class Class4int extends self::Class4 { static method _#_#tearOff() → self::Class4int return new self::Class4int::_(); static factory •() → self::Class4int - let Never #redirecting_factory = self::Class4int::_ in invalid-expression; + return new self::Class4int::_(); static method _#new#tearOff() → self::Class4int return new self::Class4int::_(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.weak.expect index e617e7dee90..31fe5154d64 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.weak.expect @@ -42,7 +42,7 @@ class Class1 extends core::Object { static method _#_#tearOff() → self::Class1 return new self::Class1::_(); static factory •() → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in let self::Class1::•::T% #typeArg0 = null in invalid-expression; + return new self::Class1::_(); static method _#new#tearOff() → self::Class1 return new self::Class1::_(); } @@ -54,7 +54,7 @@ class Class2 extends core::Object { static method _#_#tearOff() → self::Class2 return new self::Class2::_(); static factory •() → self::Class2 - let dynamic #redirecting_factory = self::Class2::_ in let self::Class2::•::T #typeArg0 = null in invalid-expression; + return new self::Class2::_(); static method _#new#tearOff() → self::Class2 return new self::Class2::_(); } @@ -66,7 +66,7 @@ class Class3() → self::Class3 return new self::Class3::_(); static factory •() → self::Class3 - let dynamic #redirecting_factory = self::Class3::_ in let self::Class3::•::T% #typeArg0 = null in let self::Class3::•::S% #typeArg1 = null in invalid-expression; + return new self::Class3::_(); static method _#new#tearOff() → self::Class3 return new self::Class3::_(); } @@ -78,7 +78,7 @@ class Class4 = self::Class4> ex static method _#_#tearOff = self::Class4>() → self::Class4 return new self::Class4::_(); static factory • = self::Class4>() → self::Class4 - let dynamic #redirecting_factory = self::Class4::_ in let self::Class4::•::T #typeArg0 = null in invalid-expression; + return new self::Class4::_(); static method _#new#tearOff = self::Class4>() → self::Class4 return new self::Class4::_(); } @@ -90,7 +90,7 @@ class Class4int extends self::Class4 { static method _#_#tearOff() → self::Class4int return new self::Class4int::_(); static factory •() → self::Class4int - let dynamic #redirecting_factory = self::Class4int::_ in invalid-expression; + return new self::Class4int::_(); static method _#new#tearOff() → self::Class4int return new self::Class4int::_(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.weak.outline.expect index 26553e6239c..f1a60c89ace 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.weak.outline.expect @@ -9,7 +9,7 @@ class Class1 extends core::Object { static method _#_#tearOff() → self::Class1 return new self::Class1::_(); static factory •() → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in let self::Class1::•::T% #typeArg0 = null in invalid-expression; + return new self::Class1::_(); static method _#new#tearOff() → self::Class1 return new self::Class1::_(); } @@ -20,7 +20,7 @@ class Class2 extends core::Object { static method _#_#tearOff() → self::Class2 return new self::Class2::_(); static factory •() → self::Class2 - let dynamic #redirecting_factory = self::Class2::_ in let self::Class2::•::T #typeArg0 = null in invalid-expression; + return new self::Class2::_(); static method _#new#tearOff() → self::Class2 return new self::Class2::_(); } @@ -31,7 +31,7 @@ class Class3() → self::Class3 return new self::Class3::_(); static factory •() → self::Class3 - let dynamic #redirecting_factory = self::Class3::_ in let self::Class3::•::T% #typeArg0 = null in let self::Class3::•::S% #typeArg1 = null in invalid-expression; + return new self::Class3::_(); static method _#new#tearOff() → self::Class3 return new self::Class3::_(); } @@ -42,7 +42,7 @@ class Class4 = self::Class4> ex static method _#_#tearOff = self::Class4>() → self::Class4 return new self::Class4::_(); static factory • = self::Class4>() → self::Class4 - let dynamic #redirecting_factory = self::Class4::_ in let self::Class4::•::T #typeArg0 = null in invalid-expression; + return new self::Class4::_(); static method _#new#tearOff = self::Class4>() → self::Class4 return new self::Class4::_(); } @@ -53,7 +53,7 @@ class Class4int extends self::Class4 { static method _#_#tearOff() → self::Class4int return new self::Class4int::_(); static factory •() → self::Class4int - let dynamic #redirecting_factory = self::Class4int::_ in invalid-expression; + return new self::Class4int::_(); static method _#new#tearOff() → self::Class4int return new self::Class4int::_(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.weak.transformed.expect index 93bb73052b0..2b61e14a1e8 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/generic_redirecting_factory_tear_off.dart.weak.transformed.expect @@ -42,7 +42,7 @@ class Class1 extends core::Object { static method _#_#tearOff() → self::Class1 return new self::Class1::_(); static factory •() → self::Class1 - let Never #redirecting_factory = self::Class1::_ in let self::Class1::•::T% #typeArg0 = null in invalid-expression; + return new self::Class1::_(); static method _#new#tearOff() → self::Class1 return new self::Class1::_(); } @@ -54,7 +54,7 @@ class Class2 extends core::Object { static method _#_#tearOff() → self::Class2 return new self::Class2::_(); static factory •() → self::Class2 - let Never #redirecting_factory = self::Class2::_ in let self::Class2::•::T #typeArg0 = null in invalid-expression; + return new self::Class2::_(); static method _#new#tearOff() → self::Class2 return new self::Class2::_(); } @@ -66,7 +66,7 @@ class Class3() → self::Class3 return new self::Class3::_(); static factory •() → self::Class3 - let Never #redirecting_factory = self::Class3::_ in let self::Class3::•::T% #typeArg0 = null in let self::Class3::•::S% #typeArg1 = null in invalid-expression; + return new self::Class3::_(); static method _#new#tearOff() → self::Class3 return new self::Class3::_(); } @@ -78,7 +78,7 @@ class Class4 = self::Class4> ex static method _#_#tearOff = self::Class4>() → self::Class4 return new self::Class4::_(); static factory • = self::Class4>() → self::Class4 - let Never #redirecting_factory = self::Class4::_ in let self::Class4::•::T #typeArg0 = null in invalid-expression; + return new self::Class4::_(); static method _#new#tearOff = self::Class4>() → self::Class4 return new self::Class4::_(); } @@ -90,7 +90,7 @@ class Class4int extends self::Class4 { static method _#_#tearOff() → self::Class4int return new self::Class4int::_(); static factory •() → self::Class4int - let Never #redirecting_factory = self::Class4int::_ in invalid-expression; + return new self::Class4int::_(); static method _#new#tearOff() → self::Class4int return new self::Class4int::_(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.strong.expect index 9277874955a..abfa7c02a50 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.strong.expect @@ -17,7 +17,7 @@ class A extends core::Object { static method _#fact#tearOff() → self::A return self::A::fact(); static factory redirect() → self::A - let dynamic #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression; + return new self::A::•(); static method _#redirect#tearOff() → self::A return new self::A::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.strong.transformed.expect index bfa45c0d863..e5c1801aac4 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.strong.transformed.expect @@ -17,7 +17,7 @@ class A extends core::Object { static method _#fact#tearOff() → self::A return self::A::fact(); static factory redirect() → self::A - let Never #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression; + return new self::A::•(); static method _#redirect#tearOff() → self::A return new self::A::•(); } @@ -115,4 +115,4 @@ Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_renam Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:48:3 -> BoolConstant(true) Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:50:3 -> BoolConstant(true) Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:51:3 -> BoolConstant(true) -Extra constant evaluation: evaluated: 61, effectively constant: 10 +Extra constant evaluation: evaluated: 59, effectively constant: 10 diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.weak.expect index 8e0844f4c0b..b2261ef8285 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.weak.expect @@ -17,7 +17,7 @@ class A extends core::Object { static method _#fact#tearOff() → self::A return self::A::fact(); static factory redirect() → self::A - let dynamic #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression; + return new self::A::•(); static method _#redirect#tearOff() → self::A return new self::A::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.weak.outline.expect index e433d377d43..05aae66e077 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.weak.outline.expect @@ -16,7 +16,7 @@ class A extends core::Object { static method _#fact#tearOff() → self::A return self::A::fact(); static factory redirect() → self::A - let dynamic #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression; + return new self::A::•(); static method _#redirect#tearOff() → self::A return new self::A::•(); } @@ -78,4 +78,4 @@ Evaluated: Instantiation @ org-dartlang-testcase:///inferred_non_proper_rename.d Evaluated: Instantiation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:31:13 -> InstantiationConstant(A._#new#tearOff) Evaluated: Instantiation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:32:13 -> InstantiationConstant(A._#new#tearOff) Evaluated: Instantiation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:33:31 -> InstantiationConstant(A._#new#tearOff) -Extra constant evaluation: evaluated: 32, effectively constant: 15 +Extra constant evaluation: evaluated: 30, effectively constant: 15 diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.weak.transformed.expect index 0b3ac45f23d..58297433a56 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/inferred_non_proper_rename.dart.weak.transformed.expect @@ -17,7 +17,7 @@ class A extends core::Object { static method _#fact#tearOff() → self::A return self::A::fact(); static factory redirect() → self::A - let Never #redirecting_factory = self::A::• in let self::A::redirect::T% #typeArg0 = null in invalid-expression; + return new self::A::•(); static method _#redirect#tearOff() → self::A return new self::A::•(); } @@ -118,4 +118,4 @@ Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_renam Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:48:3 -> BoolConstant(false) Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:50:3 -> BoolConstant(true) Evaluated: StaticInvocation @ org-dartlang-testcase:///inferred_non_proper_rename.dart:51:3 -> BoolConstant(false) -Extra constant evaluation: evaluated: 61, effectively constant: 10 +Extra constant evaluation: evaluated: 59, effectively constant: 10 diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.strong.expect index d55e231e2bc..cd54bc89e45 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.strong.expect @@ -24,10 +24,14 @@ class Class extends core::Object { static method constructor() → self::Class return new self::Class::_(); static factory a() → self::Class - let dynamic #redirecting_factory = "Class.nonexisting" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:10:23: Error: Redirection constructor target not found: 'Class.nonexisting' + factory Class.a() = Class.nonexisting; + ^"; static method _#a#tearOff() → self::Class; static factory b() → self::Class - let dynamic #redirecting_factory = "Class.constructor" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:11:23: Error: Redirection constructor target not found: 'Class.constructor' + factory Class.b() = Class.constructor; + ^"; static method _#b#tearOff() → self::Class; } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.strong.transformed.expect index fe5e0393bda..cd54bc89e45 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.strong.transformed.expect @@ -24,10 +24,14 @@ class Class extends core::Object { static method constructor() → self::Class return new self::Class::_(); static factory a() → self::Class - let core::String* #redirecting_factory = "Class.nonexisting" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:10:23: Error: Redirection constructor target not found: 'Class.nonexisting' + factory Class.a() = Class.nonexisting; + ^"; static method _#a#tearOff() → self::Class; static factory b() → self::Class - let core::String* #redirecting_factory = "Class.constructor" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:11:23: Error: Redirection constructor target not found: 'Class.constructor' + factory Class.b() = Class.constructor; + ^"; static method _#b#tearOff() → self::Class; } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.weak.expect index d55e231e2bc..cd54bc89e45 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.weak.expect @@ -24,10 +24,14 @@ class Class extends core::Object { static method constructor() → self::Class return new self::Class::_(); static factory a() → self::Class - let dynamic #redirecting_factory = "Class.nonexisting" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:10:23: Error: Redirection constructor target not found: 'Class.nonexisting' + factory Class.a() = Class.nonexisting; + ^"; static method _#a#tearOff() → self::Class; static factory b() → self::Class - let dynamic #redirecting_factory = "Class.constructor" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:11:23: Error: Redirection constructor target not found: 'Class.constructor' + factory Class.b() = Class.constructor; + ^"; static method _#b#tearOff() → self::Class; } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.weak.outline.expect index 7a6886a56e1..173ec341a03 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.weak.outline.expect @@ -23,10 +23,14 @@ class Class extends core::Object { static method constructor() → self::Class ; static factory a() → self::Class - let dynamic #redirecting_factory = "Class.nonexisting" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:10:23: Error: Redirection constructor target not found: 'Class.nonexisting' + factory Class.a() = Class.nonexisting; + ^"; static method _#a#tearOff() → self::Class; static factory b() → self::Class - let dynamic #redirecting_factory = "Class.constructor" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:11:23: Error: Redirection constructor target not found: 'Class.constructor' + factory Class.b() = Class.constructor; + ^"; static method _#b#tearOff() → self::Class; } static method main() → dynamic diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.weak.transformed.expect index fe5e0393bda..cd54bc89e45 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart.weak.transformed.expect @@ -24,10 +24,14 @@ class Class extends core::Object { static method constructor() → self::Class return new self::Class::_(); static factory a() → self::Class - let core::String* #redirecting_factory = "Class.nonexisting" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:10:23: Error: Redirection constructor target not found: 'Class.nonexisting' + factory Class.a() = Class.nonexisting; + ^"; static method _#a#tearOff() → self::Class; static factory b() → self::Class - let core::String* #redirecting_factory = "Class.constructor" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/lowering/missing_redirecting_target.dart:11:23: Error: Redirection constructor target not found: 'Class.constructor' + factory Class.b() = Class.constructor; + ^"; static method _#b#tearOff() → self::Class; } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.strong.expect index aed844f9e5d..8356f0d925b 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.strong.expect @@ -53,7 +53,7 @@ class Class1 extends core::Object { static method _#_#tearOff() → self::Class1 return new self::Class1::_(); static factory •() → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(); static method _#new#tearOff() → self::Class1 return new self::Class1::_(); } @@ -69,7 +69,7 @@ class Class2 extends core::Object { static method _#_#tearOff() → self::Class2 return self::Class2::_(); static factory named() → self::Class2 - let dynamic #redirecting_factory = self::Class2::_ in invalid-expression; + return self::Class2::_(); static method _#named#tearOff() → self::Class2 return self::Class2::_(); } @@ -82,7 +82,7 @@ class Class3 extends core::Object { static method _#_#tearOff(core::int field) → self::Class3 return new self::Class3::_(field); static factory •(core::int field) → self::Class3 - let dynamic #redirecting_factory = self::Class3::_ in invalid-expression; + return new self::Class3::_(field); static method _#new#tearOff(core::int field) → self::Class3 return new self::Class3::_(field); } @@ -95,7 +95,7 @@ class Class4 extends core::Object { static method _#_#tearOff([core::int? field = #C1]) → self::Class4 return new self::Class4::_(field); static factory •([core::int? field = #C1]) → self::Class4 - let dynamic #redirecting_factory = self::Class4::_ in invalid-expression; + return new self::Class4::_(field); static method _#new#tearOff([core::int? field = #C1]) → self::Class4 return new self::Class4::_(field); } @@ -109,7 +109,7 @@ class Class5 extends core::Object { static method _#_#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5 return new self::Class5::_(field1, field2); static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5 - let dynamic #redirecting_factory = self::Class5::_ in invalid-expression; + return new self::Class5::_(field1, field2); static method _#new#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5 return new self::Class5::_(field1, field2); } @@ -124,7 +124,7 @@ class Class6 extends core::Object { static method _#_#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 return new self::Class6::_(field1, field2: field2, field3: field3); static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 - let dynamic #redirecting_factory = self::Class6::_ in invalid-expression; + return new self::Class6::_(field1, field2: field2, field3: field3); static method _#new#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 return new self::Class6::_(field1, field2: field2, field3: field3); } @@ -138,7 +138,7 @@ class Class7a extends core::Object implements self::Class7b { class Class7b extends core::Object { static final field dynamic _redirecting# = [self::Class7b::•]/*isLegacy*/; static factory •() → self::Class7b - let dynamic #redirecting_factory = self::Class7a::• in invalid-expression; + return new self::Class7a::•(); static method _#new#tearOff() → self::Class7b return new self::Class7a::•(); } @@ -152,7 +152,7 @@ class Class8a extends core::Object implements class Class8b extends core::Object { static final field dynamic _redirecting# = [self::Class8b::•]/*isLegacy*/; static factory •() → self::Class8b - let dynamic #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression; + return new self::Class8a::•(); static method _#new#tearOff() → self::Class8b return new self::Class8a::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.strong.transformed.expect index ab369c97d9e..6ee29908bee 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.strong.transformed.expect @@ -53,7 +53,7 @@ class Class1 extends core::Object { static method _#_#tearOff() → self::Class1 return new self::Class1::_(); static factory •() → self::Class1 - let Never #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(); static method _#new#tearOff() → self::Class1 return new self::Class1::_(); } @@ -69,7 +69,7 @@ class Class2 extends core::Object { static method _#_#tearOff() → self::Class2 return self::Class2::_(); static factory named() → self::Class2 - let () → self::Class2 #redirecting_factory = self::Class2::_ in invalid-expression; + return self::Class2::_(); static method _#named#tearOff() → self::Class2 return self::Class2::_(); } @@ -82,7 +82,7 @@ class Class3 extends core::Object { static method _#_#tearOff(core::int field) → self::Class3 return new self::Class3::_(field); static factory •(core::int field) → self::Class3 - let Never #redirecting_factory = self::Class3::_ in invalid-expression; + return new self::Class3::_(field); static method _#new#tearOff(core::int field) → self::Class3 return new self::Class3::_(field); } @@ -95,7 +95,7 @@ class Class4 extends core::Object { static method _#_#tearOff([core::int? field = #C1]) → self::Class4 return new self::Class4::_(field); static factory •([core::int? field = #C1]) → self::Class4 - let Never #redirecting_factory = self::Class4::_ in invalid-expression; + return new self::Class4::_(field); static method _#new#tearOff([core::int? field = #C1]) → self::Class4 return new self::Class4::_(field); } @@ -109,7 +109,7 @@ class Class5 extends core::Object { static method _#_#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5 return new self::Class5::_(field1, field2); static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5 - let Never #redirecting_factory = self::Class5::_ in invalid-expression; + return new self::Class5::_(field1, field2); static method _#new#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5 return new self::Class5::_(field1, field2); } @@ -124,7 +124,7 @@ class Class6 extends core::Object { static method _#_#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 return new self::Class6::_(field1, field2: field2, field3: field3); static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 - let Never #redirecting_factory = self::Class6::_ in invalid-expression; + return new self::Class6::_(field1, field2: field2, field3: field3); static method _#new#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 return new self::Class6::_(field1, field2: field2, field3: field3); } @@ -138,7 +138,7 @@ class Class7a extends core::Object implements self::Class7b { class Class7b extends core::Object { static final field dynamic _redirecting# = [self::Class7b::•]/*isLegacy*/; static factory •() → self::Class7b - let Never #redirecting_factory = self::Class7a::• in invalid-expression; + return new self::Class7a::•(); static method _#new#tearOff() → self::Class7b return new self::Class7a::•(); } @@ -152,7 +152,7 @@ class Class8a extends core::Object implements class Class8b extends core::Object { static final field dynamic _redirecting# = [self::Class8b::•]/*isLegacy*/; static factory •() → self::Class8b - let Never #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression; + return new self::Class8a::•(); static method _#new#tearOff() → self::Class8b return new self::Class8a::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.weak.expect index aed844f9e5d..8356f0d925b 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.weak.expect @@ -53,7 +53,7 @@ class Class1 extends core::Object { static method _#_#tearOff() → self::Class1 return new self::Class1::_(); static factory •() → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(); static method _#new#tearOff() → self::Class1 return new self::Class1::_(); } @@ -69,7 +69,7 @@ class Class2 extends core::Object { static method _#_#tearOff() → self::Class2 return self::Class2::_(); static factory named() → self::Class2 - let dynamic #redirecting_factory = self::Class2::_ in invalid-expression; + return self::Class2::_(); static method _#named#tearOff() → self::Class2 return self::Class2::_(); } @@ -82,7 +82,7 @@ class Class3 extends core::Object { static method _#_#tearOff(core::int field) → self::Class3 return new self::Class3::_(field); static factory •(core::int field) → self::Class3 - let dynamic #redirecting_factory = self::Class3::_ in invalid-expression; + return new self::Class3::_(field); static method _#new#tearOff(core::int field) → self::Class3 return new self::Class3::_(field); } @@ -95,7 +95,7 @@ class Class4 extends core::Object { static method _#_#tearOff([core::int? field = #C1]) → self::Class4 return new self::Class4::_(field); static factory •([core::int? field = #C1]) → self::Class4 - let dynamic #redirecting_factory = self::Class4::_ in invalid-expression; + return new self::Class4::_(field); static method _#new#tearOff([core::int? field = #C1]) → self::Class4 return new self::Class4::_(field); } @@ -109,7 +109,7 @@ class Class5 extends core::Object { static method _#_#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5 return new self::Class5::_(field1, field2); static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5 - let dynamic #redirecting_factory = self::Class5::_ in invalid-expression; + return new self::Class5::_(field1, field2); static method _#new#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5 return new self::Class5::_(field1, field2); } @@ -124,7 +124,7 @@ class Class6 extends core::Object { static method _#_#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 return new self::Class6::_(field1, field2: field2, field3: field3); static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 - let dynamic #redirecting_factory = self::Class6::_ in invalid-expression; + return new self::Class6::_(field1, field2: field2, field3: field3); static method _#new#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 return new self::Class6::_(field1, field2: field2, field3: field3); } @@ -138,7 +138,7 @@ class Class7a extends core::Object implements self::Class7b { class Class7b extends core::Object { static final field dynamic _redirecting# = [self::Class7b::•]/*isLegacy*/; static factory •() → self::Class7b - let dynamic #redirecting_factory = self::Class7a::• in invalid-expression; + return new self::Class7a::•(); static method _#new#tearOff() → self::Class7b return new self::Class7a::•(); } @@ -152,7 +152,7 @@ class Class8a extends core::Object implements class Class8b extends core::Object { static final field dynamic _redirecting# = [self::Class8b::•]/*isLegacy*/; static factory •() → self::Class8b - let dynamic #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression; + return new self::Class8a::•(); static method _#new#tearOff() → self::Class8b return new self::Class8a::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.weak.outline.expect index 0067daa8e0b..e1045836a76 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.weak.outline.expect @@ -9,7 +9,7 @@ class Class1 extends core::Object { static method _#_#tearOff() → self::Class1 return new self::Class1::_(); static factory •() → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(); static method _#new#tearOff() → self::Class1 return new self::Class1::_(); } @@ -24,7 +24,7 @@ class Class2 extends core::Object { static method _#_#tearOff() → self::Class2 return self::Class2::_(); static factory named() → self::Class2 - let dynamic #redirecting_factory = self::Class2::_ in invalid-expression; + return self::Class2::_(); static method _#named#tearOff() → self::Class2 return self::Class2::_(); } @@ -36,7 +36,7 @@ class Class3 extends core::Object { static method _#_#tearOff(core::int field) → self::Class3 return new self::Class3::_(field); static factory •(core::int field) → self::Class3 - let dynamic #redirecting_factory = self::Class3::_ in invalid-expression; + return new self::Class3::_(field); static method _#new#tearOff(core::int field) → self::Class3 return new self::Class3::_(field); } @@ -48,7 +48,7 @@ class Class4 extends core::Object { static method _#_#tearOff([core::int? field]) → self::Class4 return new self::Class4::_(field); static factory •([core::int? field]) → self::Class4 - let dynamic #redirecting_factory = self::Class4::_ in invalid-expression; + return new self::Class4::_(field); static method _#new#tearOff([core::int? field]) → self::Class4 return new self::Class4::_(field); } @@ -61,7 +61,7 @@ class Class5 extends core::Object { static method _#_#tearOff(core::int field1, [core::int? field2]) → self::Class5 return new self::Class5::_(field1, field2); static factory •(core::int field1, [core::int? field2]) → self::Class5 - let dynamic #redirecting_factory = self::Class5::_ in invalid-expression; + return new self::Class5::_(field1, field2); static method _#new#tearOff(core::int field1, [core::int? field2]) → self::Class5 return new self::Class5::_(field1, field2); } @@ -75,7 +75,7 @@ class Class6 extends core::Object { static method _#_#tearOff(core::int field1, {core::int? field2, required core::int field3}) → self::Class6 return new self::Class6::_(field1, field2: field2, field3: field3); static factory •(core::int field1, {core::int? field2, required core::int field3}) → self::Class6 - let dynamic #redirecting_factory = self::Class6::_ in invalid-expression; + return new self::Class6::_(field1, field2: field2, field3: field3); static method _#new#tearOff(core::int field1, {core::int? field2, required core::int field3}) → self::Class6 return new self::Class6::_(field1, field2: field2, field3: field3); } @@ -88,7 +88,7 @@ class Class7a extends core::Object implements self::Class7b { class Class7b extends core::Object { static final field dynamic _redirecting# = [self::Class7b::•]/*isLegacy*/; static factory •() → self::Class7b - let dynamic #redirecting_factory = self::Class7a::• in invalid-expression; + return new self::Class7a::•(); static method _#new#tearOff() → self::Class7b return new self::Class7a::•(); } @@ -101,7 +101,7 @@ class Class8a extends core::Object implements class Class8b extends core::Object { static final field dynamic _redirecting# = [self::Class8b::•]/*isLegacy*/; static factory •() → self::Class8b - let dynamic #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression; + return new self::Class8a::•(); static method _#new#tearOff() → self::Class8b return new self::Class8a::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.weak.transformed.expect index ab369c97d9e..6ee29908bee 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off.dart.weak.transformed.expect @@ -53,7 +53,7 @@ class Class1 extends core::Object { static method _#_#tearOff() → self::Class1 return new self::Class1::_(); static factory •() → self::Class1 - let Never #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(); static method _#new#tearOff() → self::Class1 return new self::Class1::_(); } @@ -69,7 +69,7 @@ class Class2 extends core::Object { static method _#_#tearOff() → self::Class2 return self::Class2::_(); static factory named() → self::Class2 - let () → self::Class2 #redirecting_factory = self::Class2::_ in invalid-expression; + return self::Class2::_(); static method _#named#tearOff() → self::Class2 return self::Class2::_(); } @@ -82,7 +82,7 @@ class Class3 extends core::Object { static method _#_#tearOff(core::int field) → self::Class3 return new self::Class3::_(field); static factory •(core::int field) → self::Class3 - let Never #redirecting_factory = self::Class3::_ in invalid-expression; + return new self::Class3::_(field); static method _#new#tearOff(core::int field) → self::Class3 return new self::Class3::_(field); } @@ -95,7 +95,7 @@ class Class4 extends core::Object { static method _#_#tearOff([core::int? field = #C1]) → self::Class4 return new self::Class4::_(field); static factory •([core::int? field = #C1]) → self::Class4 - let Never #redirecting_factory = self::Class4::_ in invalid-expression; + return new self::Class4::_(field); static method _#new#tearOff([core::int? field = #C1]) → self::Class4 return new self::Class4::_(field); } @@ -109,7 +109,7 @@ class Class5 extends core::Object { static method _#_#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5 return new self::Class5::_(field1, field2); static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5 - let Never #redirecting_factory = self::Class5::_ in invalid-expression; + return new self::Class5::_(field1, field2); static method _#new#tearOff(core::int field1, [core::int? field2 = #C1]) → self::Class5 return new self::Class5::_(field1, field2); } @@ -124,7 +124,7 @@ class Class6 extends core::Object { static method _#_#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 return new self::Class6::_(field1, field2: field2, field3: field3); static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 - let Never #redirecting_factory = self::Class6::_ in invalid-expression; + return new self::Class6::_(field1, field2: field2, field3: field3); static method _#new#tearOff(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 return new self::Class6::_(field1, field2: field2, field3: field3); } @@ -138,7 +138,7 @@ class Class7a extends core::Object implements self::Class7b { class Class7b extends core::Object { static final field dynamic _redirecting# = [self::Class7b::•]/*isLegacy*/; static factory •() → self::Class7b - let Never #redirecting_factory = self::Class7a::• in invalid-expression; + return new self::Class7a::•(); static method _#new#tearOff() → self::Class7b return new self::Class7a::•(); } @@ -152,7 +152,7 @@ class Class8a extends core::Object implements class Class8b extends core::Object { static final field dynamic _redirecting# = [self::Class8b::•]/*isLegacy*/; static factory •() → self::Class8b - let Never #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression; + return new self::Class8a::•(); static method _#new#tearOff() → self::Class8b return new self::Class8a::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.strong.expect index 8d0766ce42c..c7984a54cad 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.strong.expect @@ -24,7 +24,7 @@ class Class1 extends core::Object { static method _#_#tearOff([core::int field = #C1]) → self::Class1 return new self::Class1::_(field); static factory •([core::int field = #C2]) → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(field); static method _#new#tearOff([core::int field = #C1]) → self::Class1 return new self::Class1::_(field); } @@ -37,7 +37,7 @@ class Class2 extends core::Object { static method _#_#tearOff({core::int field = #C1}) → self::Class2 return new self::Class2::_(field: field); static factory •({core::int field = #C2}) → self::Class2 - let dynamic #redirecting_factory = self::Class2::_ in invalid-expression; + return new self::Class2::_(field: field); static method _#new#tearOff({core::int field = #C1}) → self::Class2 return new self::Class2::_(field: field); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.strong.transformed.expect index 726cb479c03..9f465616a0e 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.strong.transformed.expect @@ -24,7 +24,7 @@ class Class1 extends core::Object { static method _#_#tearOff([core::int field = #C1]) → self::Class1 return new self::Class1::_(field); static factory •([core::int field = #C2]) → self::Class1 - let Never #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(field); static method _#new#tearOff([core::int field = #C1]) → self::Class1 return new self::Class1::_(field); } @@ -37,7 +37,7 @@ class Class2 extends core::Object { static method _#_#tearOff({core::int field = #C1}) → self::Class2 return new self::Class2::_(field: field); static factory •({core::int field = #C2}) → self::Class2 - let Never #redirecting_factory = self::Class2::_ in invalid-expression; + return new self::Class2::_(field: field); static method _#new#tearOff({core::int field = #C1}) → self::Class2 return new self::Class2::_(field: field); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.weak.expect index 8d0766ce42c..c7984a54cad 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.weak.expect @@ -24,7 +24,7 @@ class Class1 extends core::Object { static method _#_#tearOff([core::int field = #C1]) → self::Class1 return new self::Class1::_(field); static factory •([core::int field = #C2]) → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(field); static method _#new#tearOff([core::int field = #C1]) → self::Class1 return new self::Class1::_(field); } @@ -37,7 +37,7 @@ class Class2 extends core::Object { static method _#_#tearOff({core::int field = #C1}) → self::Class2 return new self::Class2::_(field: field); static factory •({core::int field = #C2}) → self::Class2 - let dynamic #redirecting_factory = self::Class2::_ in invalid-expression; + return new self::Class2::_(field: field); static method _#new#tearOff({core::int field = #C1}) → self::Class2 return new self::Class2::_(field: field); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.weak.outline.expect index e6fbbd5297c..1cd9ef2215d 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.weak.outline.expect @@ -10,7 +10,7 @@ class Class1 extends core::Object { static method _#_#tearOff([core::int field]) → self::Class1 return new self::Class1::_(field); static factory •([core::int field]) → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(field); static method _#new#tearOff([core::int field]) → self::Class1 return new self::Class1::_(field); } @@ -22,7 +22,7 @@ class Class2 extends core::Object { static method _#_#tearOff({core::int field}) → self::Class2 return new self::Class2::_(field: field); static factory •({core::int field}) → self::Class2 - let dynamic #redirecting_factory = self::Class2::_ in invalid-expression; + return new self::Class2::_(field: field); static 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.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.weak.transformed.expect index 726cb479c03..9f465616a0e 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values.dart.weak.transformed.expect @@ -24,7 +24,7 @@ class Class1 extends core::Object { static method _#_#tearOff([core::int field = #C1]) → self::Class1 return new self::Class1::_(field); static factory •([core::int field = #C2]) → self::Class1 - let Never #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(field); static method _#new#tearOff([core::int field = #C1]) → self::Class1 return new self::Class1::_(field); } @@ -37,7 +37,7 @@ class Class2 extends core::Object { static method _#_#tearOff({core::int field = #C1}) → self::Class2 return new self::Class2::_(field: field); static factory •({core::int field = #C2}) → self::Class2 - let Never #redirecting_factory = self::Class2::_ in invalid-expression; + return new self::Class2::_(field: field); static method _#new#tearOff({core::int field = #C1}) → 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.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.strong.expect index dcd89adaecb..c019108cd04 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.strong.expect @@ -53,37 +53,37 @@ class Class1 extends core::Object { static method _#positional#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1 return new self::Class1::positional(field1, field2); static factory redirectPositionalSame([core::int field1 = #C3, core::int field2 = #C3]) → self::Class1 - let dynamic #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(field1, field2); static method _#redirectPositionalSame#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1 return new self::Class1::positional(field1, field2); static factory redirectPositionalFewer1([core::int field1 = #C3]) → self::Class1 - let dynamic #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(field1); static method _#redirectPositionalFewer1#tearOff([core::int field1 = #C1]) → self::Class1 return new self::Class1::positional(field1); static factory redirectPositionalFewer2() → self::Class1 - let dynamic #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(); static method _#redirectPositionalFewer2#tearOff() → self::Class1 return new self::Class1::positional(); static method _#named#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1 return new self::Class1::named(field1: field1, field2: field2); static factory redirectNamedSame({core::int field1 = #C3, core::int field2 = #C3}) → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field1: field1, field2: field2); static method _#redirectNamedSame#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1 return new self::Class1::named(field1: field1, field2: field2); static factory redirectNamedReorder({core::int field2 = #C3, core::int field1 = #C3}) → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field2: field2, field1: field1); static method _#redirectNamedReorder#tearOff({core::int field2 = #C2, core::int field1 = #C1}) → self::Class1 return new self::Class1::named(field2: field2, field1: field1); static factory redirectNamedFewer1({core::int field1 = #C3}) → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field1: field1); static method _#redirectNamedFewer1#tearOff({core::int field1 = #C1}) → self::Class1 return new self::Class1::named(field1: field1); static factory redirectNamedFewer2({core::int field2 = #C3}) → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field2: field2); static method _#redirectNamedFewer2#tearOff({core::int field2 = #C2}) → self::Class1 return new self::Class1::named(field2: field2); static factory redirectNamedFewer3() → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(); static method _#redirectNamedFewer3#tearOff() → self::Class1 return new self::Class1::named(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.strong.transformed.expect index e90c3708d4c..ffa443be994 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.strong.transformed.expect @@ -53,37 +53,37 @@ class Class1 extends core::Object { static method _#positional#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1 return new self::Class1::positional(field1, field2); static factory redirectPositionalSame([core::int field1 = #C3, core::int field2 = #C3]) → self::Class1 - let Never #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(field1, field2); static method _#redirectPositionalSame#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1 return new self::Class1::positional(field1, field2); static factory redirectPositionalFewer1([core::int field1 = #C3]) → self::Class1 - let Never #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(field1); static method _#redirectPositionalFewer1#tearOff([core::int field1 = #C1]) → self::Class1 return new self::Class1::positional(field1); static factory redirectPositionalFewer2() → self::Class1 - let Never #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(); static method _#redirectPositionalFewer2#tearOff() → self::Class1 return new self::Class1::positional(); static method _#named#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1 return new self::Class1::named(field1: field1, field2: field2); static factory redirectNamedSame({core::int field1 = #C3, core::int field2 = #C3}) → self::Class1 - let Never #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field1: field1, field2: field2); static method _#redirectNamedSame#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1 return new self::Class1::named(field1: field1, field2: field2); static factory redirectNamedReorder({core::int field2 = #C3, core::int field1 = #C3}) → self::Class1 - let Never #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field2: field2, field1: field1); static method _#redirectNamedReorder#tearOff({core::int field2 = #C2, core::int field1 = #C1}) → self::Class1 return new self::Class1::named(field2: field2, field1: field1); static factory redirectNamedFewer1({core::int field1 = #C3}) → self::Class1 - let Never #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field1: field1); static method _#redirectNamedFewer1#tearOff({core::int field1 = #C1}) → self::Class1 return new self::Class1::named(field1: field1); static factory redirectNamedFewer2({core::int field2 = #C3}) → self::Class1 - let Never #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field2: field2); static method _#redirectNamedFewer2#tearOff({core::int field2 = #C2}) → self::Class1 return new self::Class1::named(field2: field2); static factory redirectNamedFewer3() → self::Class1 - let Never #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(); static method _#redirectNamedFewer3#tearOff() → self::Class1 return new self::Class1::named(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.weak.expect index dcd89adaecb..c019108cd04 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.weak.expect @@ -53,37 +53,37 @@ class Class1 extends core::Object { static method _#positional#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1 return new self::Class1::positional(field1, field2); static factory redirectPositionalSame([core::int field1 = #C3, core::int field2 = #C3]) → self::Class1 - let dynamic #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(field1, field2); static method _#redirectPositionalSame#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1 return new self::Class1::positional(field1, field2); static factory redirectPositionalFewer1([core::int field1 = #C3]) → self::Class1 - let dynamic #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(field1); static method _#redirectPositionalFewer1#tearOff([core::int field1 = #C1]) → self::Class1 return new self::Class1::positional(field1); static factory redirectPositionalFewer2() → self::Class1 - let dynamic #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(); static method _#redirectPositionalFewer2#tearOff() → self::Class1 return new self::Class1::positional(); static method _#named#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1 return new self::Class1::named(field1: field1, field2: field2); static factory redirectNamedSame({core::int field1 = #C3, core::int field2 = #C3}) → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field1: field1, field2: field2); static method _#redirectNamedSame#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1 return new self::Class1::named(field1: field1, field2: field2); static factory redirectNamedReorder({core::int field2 = #C3, core::int field1 = #C3}) → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field2: field2, field1: field1); static method _#redirectNamedReorder#tearOff({core::int field2 = #C2, core::int field1 = #C1}) → self::Class1 return new self::Class1::named(field2: field2, field1: field1); static factory redirectNamedFewer1({core::int field1 = #C3}) → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field1: field1); static method _#redirectNamedFewer1#tearOff({core::int field1 = #C1}) → self::Class1 return new self::Class1::named(field1: field1); static factory redirectNamedFewer2({core::int field2 = #C3}) → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field2: field2); static method _#redirectNamedFewer2#tearOff({core::int field2 = #C2}) → self::Class1 return new self::Class1::named(field2: field2); static factory redirectNamedFewer3() → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(); static method _#redirectNamedFewer3#tearOff() → self::Class1 return new self::Class1::named(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.weak.outline.expect index 9ef35ebdb4c..c33110bb170 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.weak.outline.expect @@ -13,37 +13,37 @@ class Class1 extends core::Object { static method _#positional#tearOff([core::int field1, core::int field2]) → self::Class1 return new self::Class1::positional(field1, field2); static factory redirectPositionalSame([core::int field1, core::int field2]) → self::Class1 - let dynamic #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(field1, field2); static method _#redirectPositionalSame#tearOff([core::int field1, core::int field2]) → self::Class1 return new self::Class1::positional(field1, field2); static factory redirectPositionalFewer1([core::int field1]) → self::Class1 - let dynamic #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(field1); static method _#redirectPositionalFewer1#tearOff([core::int field1]) → self::Class1 return new self::Class1::positional(field1); static factory redirectPositionalFewer2() → self::Class1 - let dynamic #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(); static method _#redirectPositionalFewer2#tearOff() → self::Class1 return new self::Class1::positional(); static method _#named#tearOff({core::int field1, core::int field2}) → self::Class1 return new self::Class1::named(field1: field1, field2: field2); static factory redirectNamedSame({core::int field1, core::int field2}) → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field1: field1, field2: field2); static 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, core::int field1}) → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field2: field2, field1: field1); static 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}) → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field1: field1); static method _#redirectNamedFewer1#tearOff({core::int field1}) → self::Class1 return new self::Class1::named(field1: field1); static factory redirectNamedFewer2({core::int field2}) → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field2: field2); static method _#redirectNamedFewer2#tearOff({core::int field2}) → self::Class1 return new self::Class1::named(field2: field2); static factory redirectNamedFewer3() → self::Class1 - let dynamic #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(); static method _#redirectNamedFewer3#tearOff() → self::Class1 return new self::Class1::named(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.weak.transformed.expect index e90c3708d4c..ffa443be994 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/redirecting_factory_tear_off_default_values_complex.dart.weak.transformed.expect @@ -53,37 +53,37 @@ class Class1 extends core::Object { static method _#positional#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1 return new self::Class1::positional(field1, field2); static factory redirectPositionalSame([core::int field1 = #C3, core::int field2 = #C3]) → self::Class1 - let Never #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(field1, field2); static method _#redirectPositionalSame#tearOff([core::int field1 = #C1, core::int field2 = #C2]) → self::Class1 return new self::Class1::positional(field1, field2); static factory redirectPositionalFewer1([core::int field1 = #C3]) → self::Class1 - let Never #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(field1); static method _#redirectPositionalFewer1#tearOff([core::int field1 = #C1]) → self::Class1 return new self::Class1::positional(field1); static factory redirectPositionalFewer2() → self::Class1 - let Never #redirecting_factory = self::Class1::positional in invalid-expression; + return new self::Class1::positional(); static method _#redirectPositionalFewer2#tearOff() → self::Class1 return new self::Class1::positional(); static method _#named#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1 return new self::Class1::named(field1: field1, field2: field2); static factory redirectNamedSame({core::int field1 = #C3, core::int field2 = #C3}) → self::Class1 - let Never #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field1: field1, field2: field2); static method _#redirectNamedSame#tearOff({core::int field1 = #C1, core::int field2 = #C2}) → self::Class1 return new self::Class1::named(field1: field1, field2: field2); static factory redirectNamedReorder({core::int field2 = #C3, core::int field1 = #C3}) → self::Class1 - let Never #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field2: field2, field1: field1); static method _#redirectNamedReorder#tearOff({core::int field2 = #C2, core::int field1 = #C1}) → self::Class1 return new self::Class1::named(field2: field2, field1: field1); static factory redirectNamedFewer1({core::int field1 = #C3}) → self::Class1 - let Never #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field1: field1); static method _#redirectNamedFewer1#tearOff({core::int field1 = #C1}) → self::Class1 return new self::Class1::named(field1: field1); static factory redirectNamedFewer2({core::int field2 = #C3}) → self::Class1 - let Never #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(field2: field2); static method _#redirectNamedFewer2#tearOff({core::int field2 = #C2}) → self::Class1 return new self::Class1::named(field2: field2); static factory redirectNamedFewer3() → self::Class1 - let Never #redirecting_factory = self::Class1::named in invalid-expression; + return new self::Class1::named(); static method _#redirectNamedFewer3#tearOff() → self::Class1 return new self::Class1::named(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.strong.expect index 2dc1f6961b7..ad13134178a 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.strong.expect @@ -100,7 +100,7 @@ class A extends core::Object { static method _#fact#tearOff(mai::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → mai::A return mai::A::fact(a, b: b, c: c); static factory redirect() → mai::A - let dynamic #redirecting_factory = mai::A::• in let mai::A::redirect::T% #typeArg0 = null in invalid-expression; + return new mai::A::•(); static method _#redirect#tearOff() → mai::A return new mai::A::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.strong.transformed.expect index a5b6962c302..ad13134178a 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.strong.transformed.expect @@ -100,7 +100,7 @@ class A extends core::Object { static method _#fact#tearOff(mai::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → mai::A return mai::A::fact(a, b: b, c: c); static factory redirect() → mai::A - let Never #redirecting_factory = mai::A::• in let mai::A::redirect::T% #typeArg0 = null in invalid-expression; + return new mai::A::•(); static method _#redirect#tearOff() → mai::A return new mai::A::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.weak.expect index 2dc1f6961b7..ad13134178a 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.weak.expect @@ -100,7 +100,7 @@ class A extends core::Object { static method _#fact#tearOff(mai::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → mai::A return mai::A::fact(a, b: b, c: c); static factory redirect() → mai::A - let dynamic #redirecting_factory = mai::A::• in let mai::A::redirect::T% #typeArg0 = null in invalid-expression; + return new mai::A::•(); static method _#redirect#tearOff() → mai::A return new mai::A::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.weak.outline.expect index f1af04887de..cd0b2f3f908 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.weak.outline.expect @@ -48,7 +48,7 @@ class A extends core::Object { static method _#fact#tearOff(mai::A::_#fact#tearOff::T% a, {core::int? b, core::int c}) → mai::A return mai::A::fact(a, b: b, c: c); static factory redirect() → mai::A - let dynamic #redirecting_factory = mai::A::• in let mai::A::redirect::T% #typeArg0 = null in invalid-expression; + return new mai::A::•(); static method _#redirect#tearOff() → mai::A return new mai::A::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.weak.transformed.expect index a5b6962c302..ad13134178a 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_from_dill/main.dart.weak.transformed.expect @@ -100,7 +100,7 @@ class A extends core::Object { static method _#fact#tearOff(mai::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → mai::A return mai::A::fact(a, b: b, c: c); static factory redirect() → mai::A - let Never #redirecting_factory = mai::A::• in let mai::A::redirect::T% #typeArg0 = null in invalid-expression; + return new mai::A::•(); static method _#redirect#tearOff() → mai::A return new mai::A::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.strong.expect index 3e82a4393e2..4a1991112d6 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.strong.expect @@ -100,7 +100,7 @@ class A extends core::Object { static method _#fact#tearOff(typ::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → typ::A return typ::A::fact(a, b: b, c: c); static factory redirect() → typ::A - let dynamic #redirecting_factory = typ::A::• in let typ::A::redirect::T% #typeArg0 = null in invalid-expression; + return new typ::A::•(); static method _#redirect#tearOff() → typ::A return new typ::A::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.strong.transformed.expect index f7eae91481a..4a1991112d6 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.strong.transformed.expect @@ -100,7 +100,7 @@ class A extends core::Object { static method _#fact#tearOff(typ::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → typ::A return typ::A::fact(a, b: b, c: c); static factory redirect() → typ::A - let Never #redirecting_factory = typ::A::• in let typ::A::redirect::T% #typeArg0 = null in invalid-expression; + return new typ::A::•(); static method _#redirect#tearOff() → typ::A return new typ::A::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.weak.expect index 3e82a4393e2..4a1991112d6 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.weak.expect @@ -100,7 +100,7 @@ class A extends core::Object { static method _#fact#tearOff(typ::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → typ::A return typ::A::fact(a, b: b, c: c); static factory redirect() → typ::A - let dynamic #redirecting_factory = typ::A::• in let typ::A::redirect::T% #typeArg0 = null in invalid-expression; + return new typ::A::•(); static method _#redirect#tearOff() → typ::A return new typ::A::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.weak.outline.expect index feafdc3276b..cca6cc24e82 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.weak.outline.expect @@ -48,7 +48,7 @@ class A extends core::Object { static method _#fact#tearOff(typ::A::_#fact#tearOff::T% a, {core::int? b, core::int c}) → typ::A return typ::A::fact(a, b: b, c: c); static factory redirect() → typ::A - let dynamic #redirecting_factory = typ::A::• in let typ::A::redirect::T% #typeArg0 = null in invalid-expression; + return new typ::A::•(); static method _#redirect#tearOff() → typ::A return new typ::A::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.weak.transformed.expect index f7eae91481a..4a1991112d6 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/typedef_identical.dart.weak.transformed.expect @@ -100,7 +100,7 @@ class A extends core::Object { static method _#fact#tearOff(typ::A::_#fact#tearOff::T% a, {core::int? b = #C9, core::int c = #C10}) → typ::A return typ::A::fact(a, b: b, c: c); static factory redirect() → typ::A - let Never #redirecting_factory = typ::A::• in let typ::A::redirect::T% #typeArg0 = null in invalid-expression; + return new typ::A::•(); static method _#redirect#tearOff() → typ::A return new typ::A::•(); } diff --git a/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.strong.expect index b589af662d2..0ed236cc111 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.strong.expect @@ -15,11 +15,11 @@ class A extends core::Object { : super core::Object::•() ; static factory redirectingFactory() → self::A - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory redirectingFactoryChild() → self::A - let dynamic #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); static factory redirectingTwice() → self::A - let dynamic #redirecting_factory = self::A::redirectingFactory in invalid-expression; + return self::A::redirectingFactory(); } class B extends self::A { synthetic constructor •() → self::B diff --git a/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.strong.transformed.expect index a3c5d1d5eb2..0ed236cc111 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.strong.transformed.expect @@ -15,11 +15,11 @@ class A extends core::Object { : super core::Object::•() ; static factory redirectingFactory() → self::A - let Never #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory redirectingFactoryChild() → self::A - let Never #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); static factory redirectingTwice() → self::A - let () → self::A #redirecting_factory = self::A::redirectingFactory in invalid-expression; + return self::A::redirectingFactory(); } class B extends self::A { synthetic constructor •() → self::B diff --git a/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.weak.expect index b589af662d2..0ed236cc111 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.weak.expect @@ -15,11 +15,11 @@ class A extends core::Object { : super core::Object::•() ; static factory redirectingFactory() → self::A - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory redirectingFactoryChild() → self::A - let dynamic #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); static factory redirectingTwice() → self::A - let dynamic #redirecting_factory = self::A::redirectingFactory in invalid-expression; + return self::A::redirectingFactory(); } class B extends self::A { synthetic constructor •() → self::B diff --git a/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.weak.outline.expect index e80d67253fb..0b5088f048b 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.weak.outline.expect @@ -7,11 +7,11 @@ class A extends core::Object { constructor •() → self::A ; static factory redirectingFactory() → self::A - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory redirectingFactoryChild() → self::A - let dynamic #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); static factory redirectingTwice() → self::A - let dynamic #redirecting_factory = self::A::redirectingFactory in invalid-expression; + return self::A::redirectingFactory(); } class B extends self::A { synthetic constructor •() → self::B diff --git a/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.weak.transformed.expect index a3c5d1d5eb2..0ed236cc111 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/redirecting_constructors.dart.weak.transformed.expect @@ -15,11 +15,11 @@ class A extends core::Object { : super core::Object::•() ; static factory redirectingFactory() → self::A - let Never #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory redirectingFactoryChild() → self::A - let Never #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); static factory redirectingTwice() → self::A - let () → self::A #redirecting_factory = self::A::redirectingFactory in invalid-expression; + return self::A::redirectingFactory(); } class B extends self::A { synthetic constructor •() → self::B diff --git a/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.strong.expect index 4cbaccd98d5..1ff3758fb9c 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.strong.expect @@ -51,7 +51,7 @@ class Class1 extends core::Object { : super core::Object::•() ; static factory •() → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(); } class Class2 extends core::Object { static final field dynamic _redirecting# = [self::Class2::named]/*isLegacy*/; @@ -61,7 +61,7 @@ class Class2 extends core::Object { static factory _() → self::Class2 return new self::Class2::__(); static factory named() → self::Class2 - let dynamic #redirecting_factory = self::Class2::_ in invalid-expression; + return self::Class2::_(); } class Class3 extends core::Object { final field core::int field; @@ -70,7 +70,7 @@ class Class3 extends core::Object { : self::Class3::field = field, super core::Object::•() ; static factory •(core::int field) → self::Class3 - let dynamic #redirecting_factory = self::Class3::_ in invalid-expression; + return new self::Class3::_(field); } class Class4 extends core::Object { final field core::int? field; @@ -79,7 +79,7 @@ class Class4 extends core::Object { : self::Class4::field = field, super core::Object::•() ; static factory •([core::int? field = #C1]) → self::Class4 - let dynamic #redirecting_factory = self::Class4::_ in invalid-expression; + return new self::Class4::_(field); } class Class5 extends core::Object { final field core::int field1; @@ -89,7 +89,7 @@ class Class5 extends core::Object { : self::Class5::field1 = field1, self::Class5::field2 = field2, super core::Object::•() ; static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5 - let dynamic #redirecting_factory = self::Class5::_ in invalid-expression; + return new self::Class5::_(field1, field2); } class Class6 extends core::Object { final field core::int field1; @@ -100,7 +100,7 @@ class Class6 extends core::Object { : self::Class6::field1 = field1, self::Class6::field2 = field2, self::Class6::field3 = field3, super core::Object::•() ; static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 - let dynamic #redirecting_factory = self::Class6::_ in invalid-expression; + return new self::Class6::_(field1, field2: field2, field3: field3); } class Class7a extends core::Object implements self::Class7b { constructor •() → self::Class7a @@ -110,7 +110,7 @@ class Class7a extends core::Object implements self::Class7b { class Class7b extends core::Object { static final field dynamic _redirecting# = [self::Class7b::•]/*isLegacy*/; static factory •() → self::Class7b - let dynamic #redirecting_factory = self::Class7a::• in invalid-expression; + return new self::Class7a::•(); } class Class8a extends core::Object implements self::Class8b { constructor •() → self::Class8a @@ -120,7 +120,7 @@ class Class8a extends core::Object implements class Class8b extends core::Object { static final field dynamic _redirecting# = [self::Class8b::•]/*isLegacy*/; static factory •() → self::Class8b - let dynamic #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression; + return new self::Class8a::•(); } static final field core::bool inSoundMode = !([] is{ForNonNullableByDefault} core::List); static method main() → dynamic { diff --git a/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.strong.transformed.expect index 9650d394d39..83c77984bee 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.strong.transformed.expect @@ -51,7 +51,7 @@ class Class1 extends core::Object { : super core::Object::•() ; static factory •() → self::Class1 - let Never #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(); } class Class2 extends core::Object { static final field dynamic _redirecting# = [self::Class2::named]/*isLegacy*/; @@ -61,7 +61,7 @@ class Class2 extends core::Object { static factory _() → self::Class2 return new self::Class2::__(); static factory named() → self::Class2 - let () → self::Class2 #redirecting_factory = self::Class2::_ in invalid-expression; + return self::Class2::_(); } class Class3 extends core::Object { final field core::int field; @@ -70,7 +70,7 @@ class Class3 extends core::Object { : self::Class3::field = field, super core::Object::•() ; static factory •(core::int field) → self::Class3 - let Never #redirecting_factory = self::Class3::_ in invalid-expression; + return new self::Class3::_(field); } class Class4 extends core::Object { final field core::int? field; @@ -79,7 +79,7 @@ class Class4 extends core::Object { : self::Class4::field = field, super core::Object::•() ; static factory •([core::int? field = #C1]) → self::Class4 - let Never #redirecting_factory = self::Class4::_ in invalid-expression; + return new self::Class4::_(field); } class Class5 extends core::Object { final field core::int field1; @@ -89,7 +89,7 @@ class Class5 extends core::Object { : self::Class5::field1 = field1, self::Class5::field2 = field2, super core::Object::•() ; static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5 - let Never #redirecting_factory = self::Class5::_ in invalid-expression; + return new self::Class5::_(field1, field2); } class Class6 extends core::Object { final field core::int field1; @@ -100,7 +100,7 @@ class Class6 extends core::Object { : self::Class6::field1 = field1, self::Class6::field2 = field2, self::Class6::field3 = field3, super core::Object::•() ; static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 - let Never #redirecting_factory = self::Class6::_ in invalid-expression; + return new self::Class6::_(field1, field2: field2, field3: field3); } class Class7a extends core::Object implements self::Class7b { constructor •() → self::Class7a @@ -110,7 +110,7 @@ class Class7a extends core::Object implements self::Class7b { class Class7b extends core::Object { static final field dynamic _redirecting# = [self::Class7b::•]/*isLegacy*/; static factory •() → self::Class7b - let Never #redirecting_factory = self::Class7a::• in invalid-expression; + return new self::Class7a::•(); } class Class8a extends core::Object implements self::Class8b { constructor •() → self::Class8a @@ -120,7 +120,7 @@ class Class8a extends core::Object implements class Class8b extends core::Object { static final field dynamic _redirecting# = [self::Class8b::•]/*isLegacy*/; static factory •() → self::Class8b - let Never #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression; + return new self::Class8a::•(); } static final field core::bool inSoundMode = !(core::_GrowableList::•(0) is{ForNonNullableByDefault} core::List); static method main() → dynamic { diff --git a/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.weak.expect index 4cbaccd98d5..1ff3758fb9c 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.weak.expect @@ -51,7 +51,7 @@ class Class1 extends core::Object { : super core::Object::•() ; static factory •() → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(); } class Class2 extends core::Object { static final field dynamic _redirecting# = [self::Class2::named]/*isLegacy*/; @@ -61,7 +61,7 @@ class Class2 extends core::Object { static factory _() → self::Class2 return new self::Class2::__(); static factory named() → self::Class2 - let dynamic #redirecting_factory = self::Class2::_ in invalid-expression; + return self::Class2::_(); } class Class3 extends core::Object { final field core::int field; @@ -70,7 +70,7 @@ class Class3 extends core::Object { : self::Class3::field = field, super core::Object::•() ; static factory •(core::int field) → self::Class3 - let dynamic #redirecting_factory = self::Class3::_ in invalid-expression; + return new self::Class3::_(field); } class Class4 extends core::Object { final field core::int? field; @@ -79,7 +79,7 @@ class Class4 extends core::Object { : self::Class4::field = field, super core::Object::•() ; static factory •([core::int? field = #C1]) → self::Class4 - let dynamic #redirecting_factory = self::Class4::_ in invalid-expression; + return new self::Class4::_(field); } class Class5 extends core::Object { final field core::int field1; @@ -89,7 +89,7 @@ class Class5 extends core::Object { : self::Class5::field1 = field1, self::Class5::field2 = field2, super core::Object::•() ; static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5 - let dynamic #redirecting_factory = self::Class5::_ in invalid-expression; + return new self::Class5::_(field1, field2); } class Class6 extends core::Object { final field core::int field1; @@ -100,7 +100,7 @@ class Class6 extends core::Object { : self::Class6::field1 = field1, self::Class6::field2 = field2, self::Class6::field3 = field3, super core::Object::•() ; static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 - let dynamic #redirecting_factory = self::Class6::_ in invalid-expression; + return new self::Class6::_(field1, field2: field2, field3: field3); } class Class7a extends core::Object implements self::Class7b { constructor •() → self::Class7a @@ -110,7 +110,7 @@ class Class7a extends core::Object implements self::Class7b { class Class7b extends core::Object { static final field dynamic _redirecting# = [self::Class7b::•]/*isLegacy*/; static factory •() → self::Class7b - let dynamic #redirecting_factory = self::Class7a::• in invalid-expression; + return new self::Class7a::•(); } class Class8a extends core::Object implements self::Class8b { constructor •() → self::Class8a @@ -120,7 +120,7 @@ class Class8a extends core::Object implements class Class8b extends core::Object { static final field dynamic _redirecting# = [self::Class8b::•]/*isLegacy*/; static factory •() → self::Class8b - let dynamic #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression; + return new self::Class8a::•(); } static final field core::bool inSoundMode = !([] is{ForNonNullableByDefault} core::List); static method main() → dynamic { diff --git a/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.weak.outline.expect index d972b389c1b..3714e570205 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.weak.outline.expect @@ -7,7 +7,7 @@ class Class1 extends core::Object { constructor _() → self::Class1 ; static factory •() → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(); } class Class2 extends core::Object { static final field dynamic _redirecting# = [self::Class2::named]/*isLegacy*/; @@ -16,7 +16,7 @@ class Class2 extends core::Object { static factory _() → self::Class2 ; static factory named() → self::Class2 - let dynamic #redirecting_factory = self::Class2::_ in invalid-expression; + return self::Class2::_(); } class Class3 extends core::Object { final field core::int field; @@ -24,7 +24,7 @@ class Class3 extends core::Object { constructor _(core::int field) → self::Class3 ; static factory •(core::int field) → self::Class3 - let dynamic #redirecting_factory = self::Class3::_ in invalid-expression; + return new self::Class3::_(field); } class Class4 extends core::Object { final field core::int? field; @@ -32,7 +32,7 @@ class Class4 extends core::Object { constructor _([core::int? field]) → self::Class4 ; static factory •([core::int? field]) → self::Class4 - let dynamic #redirecting_factory = self::Class4::_ in invalid-expression; + return new self::Class4::_(field); } class Class5 extends core::Object { final field core::int field1; @@ -41,7 +41,7 @@ class Class5 extends core::Object { constructor _(core::int field1, [core::int? field2]) → self::Class5 ; static factory •(core::int field1, [core::int? field2]) → self::Class5 - let dynamic #redirecting_factory = self::Class5::_ in invalid-expression; + return new self::Class5::_(field1, field2); } class Class6 extends core::Object { final field core::int field1; @@ -51,7 +51,7 @@ class Class6 extends core::Object { constructor _(core::int field1, {core::int? field2, required core::int field3}) → self::Class6 ; static factory •(core::int field1, {core::int? field2, required core::int field3}) → self::Class6 - let dynamic #redirecting_factory = self::Class6::_ in invalid-expression; + return new self::Class6::_(field1, field2: field2, field3: field3); } class Class7a extends core::Object implements self::Class7b { constructor •() → self::Class7a @@ -60,7 +60,7 @@ class Class7a extends core::Object implements self::Class7b { class Class7b extends core::Object { static final field dynamic _redirecting# = [self::Class7b::•]/*isLegacy*/; static factory •() → self::Class7b - let dynamic #redirecting_factory = self::Class7a::• in invalid-expression; + return new self::Class7a::•(); } class Class8a extends core::Object implements self::Class8b { constructor •() → self::Class8a @@ -69,7 +69,7 @@ class Class8a extends core::Object implements class Class8b extends core::Object { static final field dynamic _redirecting# = [self::Class8b::•]/*isLegacy*/; static factory •() → self::Class8b - let dynamic #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression; + return new self::Class8a::•(); } static final field core::bool inSoundMode; static method main() → dynamic diff --git a/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.weak.transformed.expect index 9650d394d39..83c77984bee 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/redirecting_factory_tear_off.dart.weak.transformed.expect @@ -51,7 +51,7 @@ class Class1 extends core::Object { : super core::Object::•() ; static factory •() → self::Class1 - let Never #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(); } class Class2 extends core::Object { static final field dynamic _redirecting# = [self::Class2::named]/*isLegacy*/; @@ -61,7 +61,7 @@ class Class2 extends core::Object { static factory _() → self::Class2 return new self::Class2::__(); static factory named() → self::Class2 - let () → self::Class2 #redirecting_factory = self::Class2::_ in invalid-expression; + return self::Class2::_(); } class Class3 extends core::Object { final field core::int field; @@ -70,7 +70,7 @@ class Class3 extends core::Object { : self::Class3::field = field, super core::Object::•() ; static factory •(core::int field) → self::Class3 - let Never #redirecting_factory = self::Class3::_ in invalid-expression; + return new self::Class3::_(field); } class Class4 extends core::Object { final field core::int? field; @@ -79,7 +79,7 @@ class Class4 extends core::Object { : self::Class4::field = field, super core::Object::•() ; static factory •([core::int? field = #C1]) → self::Class4 - let Never #redirecting_factory = self::Class4::_ in invalid-expression; + return new self::Class4::_(field); } class Class5 extends core::Object { final field core::int field1; @@ -89,7 +89,7 @@ class Class5 extends core::Object { : self::Class5::field1 = field1, self::Class5::field2 = field2, super core::Object::•() ; static factory •(core::int field1, [core::int? field2 = #C1]) → self::Class5 - let Never #redirecting_factory = self::Class5::_ in invalid-expression; + return new self::Class5::_(field1, field2); } class Class6 extends core::Object { final field core::int field1; @@ -100,7 +100,7 @@ class Class6 extends core::Object { : self::Class6::field1 = field1, self::Class6::field2 = field2, self::Class6::field3 = field3, super core::Object::•() ; static factory •(core::int field1, {core::int? field2 = #C1, required core::int field3 = #C1}) → self::Class6 - let Never #redirecting_factory = self::Class6::_ in invalid-expression; + return new self::Class6::_(field1, field2: field2, field3: field3); } class Class7a extends core::Object implements self::Class7b { constructor •() → self::Class7a @@ -110,7 +110,7 @@ class Class7a extends core::Object implements self::Class7b { class Class7b extends core::Object { static final field dynamic _redirecting# = [self::Class7b::•]/*isLegacy*/; static factory •() → self::Class7b - let Never #redirecting_factory = self::Class7a::• in invalid-expression; + return new self::Class7a::•(); } class Class8a extends core::Object implements self::Class8b { constructor •() → self::Class8a @@ -120,7 +120,7 @@ class Class8a extends core::Object implements class Class8b extends core::Object { static final field dynamic _redirecting# = [self::Class8b::•]/*isLegacy*/; static factory •() → self::Class8b - let Never #redirecting_factory = self::Class8a::• in let self::Class8b::•::T% #typeArg0 = null in invalid-expression; + return new self::Class8a::•(); } static final field core::bool inSoundMode = !(core::_GrowableList::•(0) is{ForNonNullableByDefault} core::List); static method main() → dynamic { diff --git a/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.strong.expect index 50ef75f8fb2..87df92f8275 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.strong.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.strong.expect @@ -11,9 +11,9 @@ class A extends core::Object { : this self::A::•() ; static factory redirectingFactory() → self::A - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory redirectingFactoryChild() → self::A - let dynamic #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); } class B extends self::A { synthetic constructor •() → self::B diff --git a/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.strong.transformed.expect index 44b6f225930..87df92f8275 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.strong.transformed.expect @@ -11,9 +11,9 @@ class A extends core::Object { : this self::A::•() ; static factory redirectingFactory() → self::A - let Never #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory redirectingFactoryChild() → self::A - let Never #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); } class B extends self::A { synthetic constructor •() → self::B diff --git a/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.weak.expect b/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.weak.expect index 50ef75f8fb2..87df92f8275 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.weak.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.weak.expect @@ -11,9 +11,9 @@ class A extends core::Object { : this self::A::•() ; static factory redirectingFactory() → self::A - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory redirectingFactoryChild() → self::A - let dynamic #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); } class B extends self::A { synthetic constructor •() → self::B diff --git a/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.weak.outline.expect index b0b288259bf..004152319fa 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.weak.outline.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.weak.outline.expect @@ -9,9 +9,9 @@ class A extends core::Object { constructor redirecting() → self::A ; static factory redirectingFactory() → self::A - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory redirectingFactoryChild() → self::A - let dynamic #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); } class B extends self::A { synthetic constructor •() → self::B diff --git a/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.weak.transformed.expect index 44b6f225930..87df92f8275 100644 --- a/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/constructor_tearoffs/unnamed_constructor.dart.weak.transformed.expect @@ -11,9 +11,9 @@ class A extends core::Object { : this self::A::•() ; static factory redirectingFactory() → self::A - let Never #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory redirectingFactoryChild() → self::A - let Never #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); } class B extends self::A { synthetic constructor •() → self::B diff --git a/pkg/front_end/testcases/general/abstract_instantiation.dart.weak.expect b/pkg/front_end/testcases/general/abstract_instantiation.dart.weak.expect index 3d26130099b..36647b1e6fa 100644 --- a/pkg/front_end/testcases/general/abstract_instantiation.dart.weak.expect +++ b/pkg/front_end/testcases/general/abstract_instantiation.dart.weak.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: Factory redirects to class 'A', which is abstract and can't be instantiated. +// factory B() = A; +// ^ +// // pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'. // - 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. // - 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. @@ -12,10 +16,6 @@ library /*isNonNullableByDefault*/; // new A(); // ^ // -// pkg/front_end/testcases/general/abstract_instantiation.dart:8:11: Error: Factory redirects to class 'A', which is abstract and can't be instantiated. -// factory B() = A; -// ^ -// import self as self; import "dart:core" as core; @@ -27,10 +27,18 @@ abstract class A extends core::Object { abstract class B extends core::Object implements self::A { static final field dynamic _redirecting# = [self::B::•]/*isLegacy*/; static factory •() → self::B - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return invalid-expression "pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'. + - 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. + - 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. + factory B() = A; + ^"; } static method test() → dynamic { throw new core::AbstractClassInstantiationError::•("A"); - throw new core::AbstractClassInstantiationError::•("A"); + invalid-expression "pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'. + - 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. + - 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. + factory B() = A; + ^"; } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/general/abstract_instantiation.dart.weak.outline.expect b/pkg/front_end/testcases/general/abstract_instantiation.dart.weak.outline.expect index abaa3b2284f..ff08754e8f0 100644 --- a/pkg/front_end/testcases/general/abstract_instantiation.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/abstract_instantiation.dart.weak.outline.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: Factory redirects to class 'A', which is abstract and can't be instantiated. +// factory B() = A; +// ^ +// // pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'. // - 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. // - 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. @@ -18,7 +22,11 @@ abstract class A extends core::Object { abstract class B extends core::Object implements self::A { static final field dynamic _redirecting# = [self::B::•]/*isLegacy*/; static factory •() → self::B - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return invalid-expression "pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'. + - 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. + - 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. + factory B() = A; + ^"; } static method test() → dynamic ; diff --git a/pkg/front_end/testcases/general/abstract_instantiation.dart.weak.transformed.expect b/pkg/front_end/testcases/general/abstract_instantiation.dart.weak.transformed.expect index 593c0252596..36647b1e6fa 100644 --- a/pkg/front_end/testcases/general/abstract_instantiation.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/abstract_instantiation.dart.weak.transformed.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: Factory redirects to class 'A', which is abstract and can't be instantiated. +// factory B() = A; +// ^ +// // pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'. // - 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. // - 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. @@ -12,10 +16,6 @@ library /*isNonNullableByDefault*/; // new A(); // ^ // -// pkg/front_end/testcases/general/abstract_instantiation.dart:8:11: Error: Factory redirects to class 'A', which is abstract and can't be instantiated. -// factory B() = A; -// ^ -// import self as self; import "dart:core" as core; @@ -27,10 +27,18 @@ abstract class A extends core::Object { abstract class B extends core::Object implements self::A { static final field dynamic _redirecting# = [self::B::•]/*isLegacy*/; static factory •() → self::B - let Never #redirecting_factory = self::A::• in invalid-expression; + return invalid-expression "pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'. + - 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. + - 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. + factory B() = A; + ^"; } static method test() → dynamic { throw new core::AbstractClassInstantiationError::•("A"); - throw new core::AbstractClassInstantiationError::•("A"); + invalid-expression "pkg/front_end/testcases/general/abstract_instantiation.dart:8:17: Error: The constructor function type 'A Function()' isn't a subtype of 'B Function()'. + - 'A' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. + - 'B' is from 'pkg/front_end/testcases/general/abstract_instantiation.dart'. + factory B() = A; + ^"; } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/general/factory_patch/main.dart.weak.expect b/pkg/front_end/testcases/general/factory_patch/main.dart.weak.expect index 3cddf53ef99..d0e5d3080ec 100644 --- a/pkg/front_end/testcases/general/factory_patch/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/factory_patch/main.dart.weak.expect @@ -38,7 +38,7 @@ class Class extends core::Object { return throw "unsupported"; @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = #C3}) → test::Class - let dynamic #redirecting_factory = test::Class::_internal in invalid-expression; + return new test::Class::_internal(defaultValue: defaultValue); } constants { diff --git a/pkg/front_end/testcases/general/factory_patch/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/factory_patch/main.dart.weak.outline.expect index 62a00f1aa55..8534e61b1ad 100644 --- a/pkg/front_end/testcases/general/factory_patch/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/factory_patch/main.dart.weak.outline.expect @@ -26,7 +26,7 @@ class Class extends core::Object { external static factory 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 - let dynamic #redirecting_factory = self2::Class::_internal in invalid-expression; + return new self2::Class::_internal(defaultValue: defaultValue); } diff --git a/pkg/front_end/testcases/general/factory_patch/main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/factory_patch/main.dart.weak.transformed.expect index 3cddf53ef99..d0e5d3080ec 100644 --- a/pkg/front_end/testcases/general/factory_patch/main.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/factory_patch/main.dart.weak.transformed.expect @@ -38,7 +38,7 @@ class Class extends core::Object { return throw "unsupported"; @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = #C3}) → test::Class - let dynamic #redirecting_factory = test::Class::_internal in invalid-expression; + return new test::Class::_internal(defaultValue: defaultValue); } constants { diff --git a/pkg/front_end/testcases/general/invalid_cast.dart.weak.expect b/pkg/front_end/testcases/general/invalid_cast.dart.weak.expect index f95725e0f34..a73f4c535a9 100644 --- a/pkg/front_end/testcases/general/invalid_cast.dart.weak.expect +++ b/pkg/front_end/testcases/general/invalid_cast.dart.weak.expect @@ -78,7 +78,7 @@ class C extends core::Object { static factory fact() → self::C* return null; static factory fact2() → self::C* - let dynamic #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(); static method staticFunction(core::int* i) → void {} abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf diff --git a/pkg/front_end/testcases/general/invalid_cast.dart.weak.outline.expect b/pkg/front_end/testcases/general/invalid_cast.dart.weak.outline.expect index c096df0d8fd..6da6ddb2ae4 100644 --- a/pkg/front_end/testcases/general/invalid_cast.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/invalid_cast.dart.weak.outline.expect @@ -13,7 +13,7 @@ class C extends core::Object { static factory fact() → self::C* ; static factory fact2() → self::C* - let dynamic #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(); static method staticFunction(core::int* i) → void ; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode diff --git a/pkg/front_end/testcases/general/invalid_cast.dart.weak.transformed.expect b/pkg/front_end/testcases/general/invalid_cast.dart.weak.transformed.expect index 36b93177d5e..7ea1c1eeddf 100644 --- a/pkg/front_end/testcases/general/invalid_cast.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/invalid_cast.dart.weak.transformed.expect @@ -78,7 +78,7 @@ class C extends core::Object { static factory fact() → self::C* return null; static factory fact2() → self::C* - let Never #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(); static method staticFunction(core::int* i) → void {} abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf diff --git a/pkg/front_end/testcases/general/issue34714.dart.weak.expect b/pkg/front_end/testcases/general/issue34714.dart.weak.expect index e023b923c29..bf4d0eb30f5 100644 --- a/pkg/front_end/testcases/general/issue34714.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue34714.dart.weak.expect @@ -5,7 +5,7 @@ import "dart:core" as core; class A extends core::Object { static final field dynamic _redirecting# = [self::A::•]; static factory •() → self::A* - let dynamic #redirecting_factory = self::B::• in let self::A::•::T* #typeArg0 = null in invalid-expression; + return new self::B::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/issue34714.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue34714.dart.weak.outline.expect index 7d7ca212ce2..04afde7975f 100644 --- a/pkg/front_end/testcases/general/issue34714.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue34714.dart.weak.outline.expect @@ -5,7 +5,7 @@ import "dart:core" as core; class A extends core::Object { static final field dynamic _redirecting# = [self::A::•]; static factory •() → self::A* - let dynamic #redirecting_factory = self::B::• in let self::A::•::T* #typeArg0 = null in invalid-expression; + return new self::B::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/issue34714.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue34714.dart.weak.transformed.expect index 485cd83eeff..bf4d0eb30f5 100644 --- a/pkg/front_end/testcases/general/issue34714.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue34714.dart.weak.transformed.expect @@ -5,7 +5,7 @@ import "dart:core" as core; class A extends core::Object { static final field dynamic _redirecting# = [self::A::•]; static factory •() → self::A* - let Never #redirecting_factory = self::B::• in let self::A::•::T* #typeArg0 = null in invalid-expression; + return new self::B::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/issue45003/main.dart.weak.expect b/pkg/front_end/testcases/general/issue45003/main.dart.weak.expect index ed97aeab0aa..56f882fd237 100644 --- a/pkg/front_end/testcases/general/issue45003/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue45003/main.dart.weak.expect @@ -23,7 +23,7 @@ abstract class Foo extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; static factory bar() → foo::Foo - let dynamic #redirecting_factory = bar::Bar::• in let dynamic #typeArg0 = null in invalid-expression; + return new bar::Bar::•(); } library /*isNonNullableByDefault*/; diff --git a/pkg/front_end/testcases/general/issue45003/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue45003/main.dart.weak.outline.expect index e71f7a01128..db7011dccbb 100644 --- a/pkg/front_end/testcases/general/issue45003/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue45003/main.dart.weak.outline.expect @@ -25,7 +25,7 @@ abstract class Foo extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; static factory bar() → foo::Foo - let dynamic #redirecting_factory = bar::Bar::• in let dynamic #typeArg0 = null in invalid-expression; + return new bar::Bar::•(); } library /*isNonNullableByDefault*/; @@ -44,4 +44,4 @@ class Bar extends foo::Foo /*hasConstConstruc Extra constant evaluation status: Evaluated: SetLiteral @ org-dartlang-testcase:///main.dart:7:27 -> InstanceConstant(const _UnmodifiableSet{_UnmodifiableSet._map: const _ImmutableMap{_ImmutableMap._kvPairs: const [const Bar{}, null]}}) -Extra constant evaluation: evaluated: 6, effectively constant: 1 +Extra constant evaluation: evaluated: 4, effectively constant: 1 diff --git a/pkg/front_end/testcases/general/issue45003/main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue45003/main.dart.weak.transformed.expect index f7ed6074a71..56f882fd237 100644 --- a/pkg/front_end/testcases/general/issue45003/main.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue45003/main.dart.weak.transformed.expect @@ -23,7 +23,7 @@ abstract class Foo extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; static factory bar() → foo::Foo - let Never #redirecting_factory = bar::Bar::• in let Null #typeArg0 = null in invalid-expression; + return new bar::Bar::•(); } library /*isNonNullableByDefault*/; diff --git a/pkg/front_end/testcases/general/issue45003_2.dart.weak.expect b/pkg/front_end/testcases/general/issue45003_2.dart.weak.expect index 05d8566358a..dcbf1e1584c 100644 --- a/pkg/front_end/testcases/general/issue45003_2.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue45003_2.dart.weak.expect @@ -18,7 +18,7 @@ abstract class A extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; static factory foo() → self::A - let dynamic #redirecting_factory = self::B::• in let dynamic #typeArg0 = null in invalid-expression; + return new self::B::•(); } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/general/issue45003_2.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue45003_2.dart.weak.outline.expect index 25cabc794ad..a9167133253 100644 --- a/pkg/front_end/testcases/general/issue45003_2.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue45003_2.dart.weak.outline.expect @@ -18,7 +18,7 @@ abstract class A extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; static factory foo() → self::A - let dynamic #redirecting_factory = self::B::• in let dynamic #typeArg0 = null in invalid-expression; + return new self::B::•(); } static method main() → dynamic ; @@ -26,4 +26,4 @@ static method main() → dynamic Extra constant evaluation status: Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue45003_2.dart:6:30 -> InstanceConstant(const B{}) -Extra constant evaluation: evaluated: 6, effectively constant: 1 +Extra constant evaluation: evaluated: 4, effectively constant: 1 diff --git a/pkg/front_end/testcases/general/issue45003_2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue45003_2.dart.weak.transformed.expect index 862829de668..dcbf1e1584c 100644 --- a/pkg/front_end/testcases/general/issue45003_2.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue45003_2.dart.weak.transformed.expect @@ -18,7 +18,7 @@ abstract class A extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; static factory foo() → self::A - let Never #redirecting_factory = self::B::• in let Null #typeArg0 = null in invalid-expression; + return new self::B::•(); } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/general/issue45101/main.dart.weak.expect b/pkg/front_end/testcases/general/issue45101/main.dart.weak.expect index 16d51388b6a..651a6e4f1ae 100644 --- a/pkg/front_end/testcases/general/issue45101/main.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue45101/main.dart.weak.expect @@ -34,7 +34,7 @@ class Array extends core::Object { static final field dynamic _redirecting# = [self2::Array::•]; @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •(core::int* foo) → self2::Array* - let dynamic #redirecting_factory = self2::_ArraySize::• in let self2::Array::•::T* #typeArg0 = null in invalid-expression; + return new self2::_ArraySize::•(foo); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/issue45101/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue45101/main.dart.weak.outline.expect index 68f366e9671..7c8d05d67db 100644 --- a/pkg/front_end/testcases/general/issue45101/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue45101/main.dart.weak.outline.expect @@ -35,7 +35,7 @@ class Array extends core::Object { static final field dynamic _redirecting# = [self2::Array::•]; @_in::patch static factory /* from org-dartlang-testcase:///patch_lib.dart */ •(core::int* foo) → self2::Array* - let dynamic #redirecting_factory = self2::_ArraySize::• in let self2::Array::•::T* #typeArg0 = null in invalid-expression; + return new self2::_ArraySize::•(foo); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -53,4 +53,4 @@ Extra constant evaluation status: Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:10:1 -> InstanceConstant(const _Patch{}) Evaluated: ConstructorInvocation @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const pragma{pragma.name: "vm:entry-point", pragma.options: null}) Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:14:17 -> InstanceConstant(const _Patch{}) -Extra constant evaluation: evaluated: 9, effectively constant: 3 +Extra constant evaluation: evaluated: 8, effectively constant: 3 diff --git a/pkg/front_end/testcases/general/issue45101/main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue45101/main.dart.weak.transformed.expect index 16d51388b6a..651a6e4f1ae 100644 --- a/pkg/front_end/testcases/general/issue45101/main.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue45101/main.dart.weak.transformed.expect @@ -34,7 +34,7 @@ class Array extends core::Object { static final field dynamic _redirecting# = [self2::Array::•]; @#C1 static factory /* from org-dartlang-testcase:///patch_lib.dart */ •(core::int* foo) → self2::Array* - let dynamic #redirecting_factory = self2::_ArraySize::• in let self2::Array::•::T* #typeArg0 = null in invalid-expression; + return new self2::_ArraySize::•(foo); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/missing_toplevel.dart.weak.transformed.expect b/pkg/front_end/testcases/general/missing_toplevel.dart.weak.transformed.expect index 92a8aa8571b..f7a04b067b1 100644 --- a/pkg/front_end/testcases/general/missing_toplevel.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/missing_toplevel.dart.weak.transformed.expect @@ -108,7 +108,7 @@ static field dynamic missingBinary = let final self::ClassWithProperty* #t1 = se Try correcting the operator to an existing operator, or defining a '+' operator. var missingBinary = classWithProperty.property += 2; ^" in #t1.{self::ClassWithProperty::property}{self::EmptyClass*}{}.+(2); -static field dynamic missingIndexGet = let final self::ClassWithIndexSet* #t2 = self::classWithIndexSet in let final core::int* #t3 = 0 in let final invalid-type #t4 = invalid-expression "pkg/front_end/testcases/general/missing_toplevel.dart:28:40: Error: The operator '[]' isn't defined for the class 'ClassWithIndexSet'. +static field dynamic missingIndexGet = let final self::ClassWithIndexSet* #t2 = self::classWithIndexSet in let final core::int* #t3 = 0 in let final Never #t4 = invalid-expression "pkg/front_end/testcases/general/missing_toplevel.dart:28:40: Error: The operator '[]' isn't defined for the class 'ClassWithIndexSet'. - 'ClassWithIndexSet' is from 'pkg/front_end/testcases/general/missing_toplevel.dart'. Try correcting the operator to an existing operator, or defining a '[]' operator. var missingIndexGet = classWithIndexSet[0] ??= 2; diff --git a/pkg/front_end/testcases/general/named_function_scope.dart.weak.transformed.expect b/pkg/front_end/testcases/general/named_function_scope.dart.weak.transformed.expect index c14d8e67ce2..2f3683b46e9 100644 --- a/pkg/front_end/testcases/general/named_function_scope.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/named_function_scope.dart.weak.transformed.expect @@ -140,7 +140,7 @@ static method test() → dynamic { ^" in null; } { - () →* Null x = let final invalid-type #t1 = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:41:15: Error: Can't declare 'T' because it was already used in this scope. + () →* Null x = let final Never #t1 = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:41:15: Error: Can't declare 'T' because it was already used in this scope. var x = T T() {}; ^" in let final () →* Null T = () → Null {} in T; } @@ -150,7 +150,7 @@ static method test() → dynamic { ^"; } { - () →* Null x = let final invalid-type #t2 = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:52:13: Error: 'T' is already declared in this scope. + () →* Null x = let final Never #t2 = invalid-expression "pkg/front_end/testcases/general/named_function_scope.dart:52:13: Error: 'T' is already declared in this scope. var x = T() {}; ^" in let final () →* Null T = () → Null {} in T; } diff --git a/pkg/front_end/testcases/general/private_members.dart.weak.expect b/pkg/front_end/testcases/general/private_members.dart.weak.expect index 7320fdccd7f..bf194cbd597 100644 --- a/pkg/front_end/testcases/general/private_members.dart.weak.expect +++ b/pkg/front_end/testcases/general/private_members.dart.weak.expect @@ -18,7 +18,7 @@ class _Class extends core::Object { // from org-dartlang-testcase:///private_mem : super core::Object::•() ; static factory _privateRedirectingFactory() → self::_Class - let dynamic #redirecting_factory = self::_Class::_privateConstructor in invalid-expression; + return new self::_Class::_privateConstructor(); method _privateMethod() → void {} get _privateGetter() → core::int return 42; diff --git a/pkg/front_end/testcases/general/private_members.dart.weak.outline.expect b/pkg/front_end/testcases/general/private_members.dart.weak.outline.expect index f9f68396956..fdc9a0e33ff 100644 --- a/pkg/front_end/testcases/general/private_members.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/private_members.dart.weak.outline.expect @@ -16,7 +16,7 @@ class _Class extends core::Object { // from org-dartlang-testcase:///private_mem constructor _privateConstructor() → self::_Class ; static factory _privateRedirectingFactory() → self::_Class - let dynamic #redirecting_factory = self::_Class::_privateConstructor in invalid-expression; + return new self::_Class::_privateConstructor(); method _privateMethod() → void ; get _privateGetter() → core::int diff --git a/pkg/front_end/testcases/general/private_members.dart.weak.transformed.expect b/pkg/front_end/testcases/general/private_members.dart.weak.transformed.expect index fd8fbf95d64..bf194cbd597 100644 --- a/pkg/front_end/testcases/general/private_members.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/private_members.dart.weak.transformed.expect @@ -18,7 +18,7 @@ class _Class extends core::Object { // from org-dartlang-testcase:///private_mem : super core::Object::•() ; static factory _privateRedirectingFactory() → self::_Class - let Never #redirecting_factory = self::_Class::_privateConstructor in invalid-expression; + return new self::_Class::_privateConstructor(); method _privateMethod() → void {} get _privateGetter() → core::int return 42; diff --git a/pkg/front_end/testcases/general/qualified.dart.weak.expect b/pkg/front_end/testcases/general/qualified.dart.weak.expect index 6bf765c5026..4deccd14402 100644 --- a/pkg/front_end/testcases/general/qualified.dart.weak.expect +++ b/pkg/front_end/testcases/general/qualified.dart.weak.expect @@ -81,7 +81,7 @@ class C extends core::Object { // from org-da : super core::Object::•() ; static factory b() → self::C* - let dynamic #redirecting_factory = lib::C::b in let self::C::b::T* #typeArg0 = null in invalid-expression; + return lib::C::b(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -122,7 +122,7 @@ class C extends self::C { : super self::C::•() ; static factory b() → lib::C* - let dynamic #redirecting_factory = lib::C::a in let lib::C::b::T* #typeArg0 = null in invalid-expression; + return new lib::C::a(); } class Supertype extends core::Object { synthetic constructor •() → lib::Supertype* diff --git a/pkg/front_end/testcases/general/qualified.dart.weak.outline.expect b/pkg/front_end/testcases/general/qualified.dart.weak.outline.expect index 2102d049093..7528cb93b21 100644 --- a/pkg/front_end/testcases/general/qualified.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/qualified.dart.weak.outline.expect @@ -79,7 +79,7 @@ class C extends core::Object { // from org-da constructor a() → self::C* ; static factory b() → self::C* - let dynamic #redirecting_factory = lib::C::b in let self::C::b::T* #typeArg0 = null in invalid-expression; + return lib::C::b(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -109,7 +109,7 @@ class C extends self::C { constructor a() → lib::C* ; static factory b() → lib::C* - let dynamic #redirecting_factory = lib::C::a in let lib::C::b::T* #typeArg0 = null in invalid-expression; + return new lib::C::a(); } class Supertype extends core::Object { synthetic constructor •() → lib::Supertype* diff --git a/pkg/front_end/testcases/general/qualified.dart.weak.transformed.expect b/pkg/front_end/testcases/general/qualified.dart.weak.transformed.expect index ea5014df6de..a982723d518 100644 --- a/pkg/front_end/testcases/general/qualified.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/qualified.dart.weak.transformed.expect @@ -82,7 +82,7 @@ class C extends core::Object { // from org-da : super core::Object::•() ; static factory b() → self::C* - let () →* lib::C* #redirecting_factory = lib::C::b in let self::C::b::T* #typeArg0 = null in invalid-expression; + return lib::C::b(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -123,7 +123,7 @@ class C extends self::C { : super self::C::•() ; static factory b() → lib::C* - let Never #redirecting_factory = lib::C::a in let lib::C::b::T* #typeArg0 = null in invalid-expression; + return new lib::C::a(); } class Supertype extends core::Object { synthetic constructor •() → lib::Supertype* diff --git a/pkg/front_end/testcases/general/redirecting_constructor.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_constructor.dart.weak.expect index 7443e13be6e..0173839dbcd 100644 --- a/pkg/front_end/testcases/general/redirecting_constructor.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirecting_constructor.dart.weak.expect @@ -8,7 +8,7 @@ class A extends core::Object { : super core::Object::•() ; static factory fisk() → self::A* - let dynamic #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_constructor.dart.weak.outline.expect index 6128d704334..94296d30e5e 100644 --- a/pkg/front_end/testcases/general/redirecting_constructor.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_constructor.dart.weak.outline.expect @@ -7,7 +7,7 @@ class A extends core::Object { constructor •() → self::A* ; static factory fisk() → self::A* - let dynamic #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_constructor.dart.weak.transformed.expect index c381d2df4b5..0173839dbcd 100644 --- a/pkg/front_end/testcases/general/redirecting_constructor.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_constructor.dart.weak.transformed.expect @@ -8,7 +8,7 @@ class A extends core::Object { : super core::Object::•() ; static factory fisk() → self::A* - let Never #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.expect index aa4bbfe981c..6155d9d3369 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.expect @@ -15,7 +15,11 @@ abstract class FooBase extends core::Object static final field dynamic _redirecting# = [self::FooBase::•]; abstract get x() → core::int*; static factory •(core::int* x) → self::FooBase* - let dynamic #redirecting_factory = self::Foo::• in let self::FooBase::•::Tf* #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/general/redirecting_factory.dart:7:28: Error: The constructor function type 'Foo Function(int)' isn't a subtype of 'FooBase Function(int)'. + - 'Foo' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + - 'FooBase' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + factory FooBase(int x) = Foo; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -30,7 +34,7 @@ abstract class FooBase extends core::Object abstract class Foo extends core::Object implements self::FooBase { static final field dynamic _redirecting# = [self::Foo::•]; static factory •(core::int* x) → self::Foo* - let dynamic #redirecting_factory = self::Bar::• in let core::String* #typeArg0 = null in let self::Foo::•::T* #typeArg1 = null in invalid-expression; + return new self::Bar::•(x); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -64,7 +68,11 @@ class Builder extends core::Object { : super core::Object::•() ; method method() → dynamic { - return new self::Bar::•(4); + return invalid-expression "pkg/front_end/testcases/general/redirecting_factory.dart:7:28: Error: The constructor function type 'Foo Function(int)' isn't a subtype of 'FooBase Function(int)'. + - 'Foo' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + - 'FooBase' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + factory FooBase(int x) = Foo; + ^"; } abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf @@ -80,7 +88,7 @@ class Builder extends core::Object { class SimpleCase extends core::Object { static final field dynamic _redirecting# = [self::SimpleCase::•]; static factory •() → self::SimpleCase* - let dynamic #redirecting_factory = self::SimpleCaseImpl::• in let self::SimpleCase::•::A* #typeArg0 = null in let self::SimpleCase::•::B* #typeArg1 = null in invalid-expression; + return self::SimpleCaseImpl::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -95,7 +103,7 @@ class SimpleCase extends core::Object implements self::SimpleCase { static final field dynamic _redirecting# = [self::SimpleCaseImpl::•]; static factory •() → self::SimpleCaseImpl* - let dynamic #redirecting_factory = self::SimpleCaseImpl2::• in let self::SimpleCaseImpl::•::Ai* #typeArg0 = null in let self::SimpleCaseImpl::•::Bi* #typeArg1 = null in invalid-expression; + return new self::SimpleCaseImpl2::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -158,7 +166,11 @@ class Mix = self::Base with se ; } static method main() → dynamic { - core::print(new self::Bar::•(4).{self::FooBase::x}{core::int*}); + core::print(invalid-expression "pkg/front_end/testcases/general/redirecting_factory.dart:7:28: Error: The constructor function type 'Foo Function(int)' isn't a subtype of 'FooBase Function(int)'. + - 'Foo' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + - 'FooBase' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + factory FooBase(int x) = Foo; + ^".{self::FooBase::x}{core::int*}); new self::SimpleCaseImpl2::•(); new self::Mix::•(); } diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.outline.expect index 9a9214d5e78..611e0cc1b3c 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.outline.expect @@ -15,7 +15,11 @@ abstract class FooBase extends core::Object static final field dynamic _redirecting# = [self::FooBase::•]; abstract get x() → core::int*; static factory •(core::int* x) → self::FooBase* - let dynamic #redirecting_factory = self::Foo::• in let self::FooBase::•::Tf* #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/general/redirecting_factory.dart:7:28: Error: The constructor function type 'Foo Function(int)' isn't a subtype of 'FooBase Function(int)'. + - 'Foo' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + - 'FooBase' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + factory FooBase(int x) = Foo; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -30,7 +34,7 @@ abstract class FooBase extends core::Object abstract class Foo extends core::Object implements self::FooBase { static final field dynamic _redirecting# = [self::Foo::•]; static factory •(core::int* x) → self::Foo* - let dynamic #redirecting_factory = self::Bar::• in let core::String* #typeArg0 = null in let self::Foo::•::T* #typeArg1 = null in invalid-expression; + return new self::Bar::•(x); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -76,7 +80,7 @@ class Builder extends core::Object { class SimpleCase extends core::Object { static final field dynamic _redirecting# = [self::SimpleCase::•]; static factory •() → self::SimpleCase* - let dynamic #redirecting_factory = self::SimpleCaseImpl::• in let self::SimpleCase::•::A* #typeArg0 = null in let self::SimpleCase::•::B* #typeArg1 = null in invalid-expression; + return self::SimpleCaseImpl::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -91,7 +95,7 @@ class SimpleCase extends core::Object implements self::SimpleCase { static final field dynamic _redirecting# = [self::SimpleCaseImpl::•]; static factory •() → self::SimpleCaseImpl* - let dynamic #redirecting_factory = self::SimpleCaseImpl2::• in let self::SimpleCaseImpl::•::Ai* #typeArg0 = null in let self::SimpleCaseImpl::•::Bi* #typeArg1 = null in invalid-expression; + return new self::SimpleCaseImpl2::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.transformed.expect index e22b2b0885b..0f768e152ff 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.transformed.expect @@ -15,7 +15,11 @@ abstract class FooBase extends core::Object static final field dynamic _redirecting# = [self::FooBase::•]; abstract get x() → core::int*; static factory •(core::int* x) → self::FooBase* - let (core::int*) →* self::Foo* #redirecting_factory = self::Foo::• in let self::FooBase::•::Tf* #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/general/redirecting_factory.dart:7:28: Error: The constructor function type 'Foo Function(int)' isn't a subtype of 'FooBase Function(int)'. + - 'Foo' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + - 'FooBase' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + factory FooBase(int x) = Foo; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -30,7 +34,7 @@ abstract class FooBase extends core::Object abstract class Foo extends core::Object implements self::FooBase { static final field dynamic _redirecting# = [self::Foo::•]; static factory •(core::int* x) → self::Foo* - let Never #redirecting_factory = self::Bar::• in let core::String* #typeArg0 = null in let self::Foo::•::T* #typeArg1 = null in invalid-expression; + return new self::Bar::•(x); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -64,7 +68,11 @@ class Builder extends core::Object { : super core::Object::•() ; method method() → dynamic { - return new self::Bar::•(4); + return invalid-expression "pkg/front_end/testcases/general/redirecting_factory.dart:7:28: Error: The constructor function type 'Foo Function(int)' isn't a subtype of 'FooBase Function(int)'. + - 'Foo' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + - 'FooBase' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + factory FooBase(int x) = Foo; + ^"; } abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf @@ -80,7 +88,7 @@ class Builder extends core::Object { class SimpleCase extends core::Object { static final field dynamic _redirecting# = [self::SimpleCase::•]; static factory •() → self::SimpleCase* - let () →* self::SimpleCaseImpl* #redirecting_factory = self::SimpleCaseImpl::• in let self::SimpleCase::•::A* #typeArg0 = null in let self::SimpleCase::•::B* #typeArg1 = null in invalid-expression; + return self::SimpleCaseImpl::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -95,7 +103,7 @@ class SimpleCase extends core::Object implements self::SimpleCase { static final field dynamic _redirecting# = [self::SimpleCaseImpl::•]; static factory •() → self::SimpleCaseImpl* - let Never #redirecting_factory = self::SimpleCaseImpl2::• in let self::SimpleCaseImpl::•::Ai* #typeArg0 = null in let self::SimpleCaseImpl::•::Bi* #typeArg1 = null in invalid-expression; + return new self::SimpleCaseImpl2::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -158,7 +166,11 @@ class Mix extends self::Base i ; } static method main() → dynamic { - core::print(new self::Bar::•(4).{self::FooBase::x}{core::int*}); + core::print(invalid-expression "pkg/front_end/testcases/general/redirecting_factory.dart:7:28: Error: The constructor function type 'Foo Function(int)' isn't a subtype of 'FooBase Function(int)'. + - 'Foo' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + - 'FooBase' is from 'pkg/front_end/testcases/general/redirecting_factory.dart'. + factory FooBase(int x) = Foo; + ^".{self::FooBase::x}{core::int*}); new self::SimpleCaseImpl2::•(); new self::Mix::•(); } diff --git a/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.weak.expect index 88615ecc7a1..16a9cdcbad8 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.weak.expect @@ -8,9 +8,9 @@ class A extends core::Object { : super core::Object::•() ; static factory first() → self::A* - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory second() → self::A* - let dynamic #redirecting_factory = self::A::first in invalid-expression; + return self::A::first(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.weak.outline.expect index 7df5d5fc1c1..3f903109f58 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.weak.outline.expect @@ -7,9 +7,9 @@ class A extends core::Object { constructor •() → self::A* ; static factory first() → self::A* - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory second() → self::A* - let dynamic #redirecting_factory = self::A::first in invalid-expression; + return self::A::first(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.weak.transformed.expect index 35892f431ed..16a9cdcbad8 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_chain_test.dart.weak.transformed.expect @@ -8,9 +8,9 @@ class A extends core::Object { : super core::Object::•() ; static factory first() → self::A* - let Never #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); static factory second() → self::A* - let () →* self::A* #redirecting_factory = self::A::first in invalid-expression; + return self::A::first(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.weak.expect index 3841bc72534..f2aaee24193 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.weak.expect @@ -5,7 +5,7 @@ import "dart:core" as core; class _X extends core::Object { static final field dynamic _redirecting# = [self::_X::•]; static factory •() → self::_X* - let dynamic #redirecting_factory = self::_Y::• in let self::_X::•::T* #typeArg0 = null in invalid-expression; + return new self::_Y::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.weak.outline.expect index 23d11aba35f..aed68b91bc8 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.weak.outline.expect @@ -5,7 +5,7 @@ import "dart:core" as core; class _X extends core::Object { static final field dynamic _redirecting# = [self::_X::•]; static factory •() → self::_X* - let dynamic #redirecting_factory = self::_Y::• in let self::_X::•::T* #typeArg0 = null in invalid-expression; + return new self::_Y::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.weak.transformed.expect index ce397b6f195..f2aaee24193 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_const_inference.dart.weak.transformed.expect @@ -5,7 +5,7 @@ import "dart:core" as core; class _X extends core::Object { static final field dynamic _redirecting# = [self::_X::•]; static factory •() → self::_X* - let Never #redirecting_factory = self::_Y::• in let self::_X::•::T* #typeArg0 = null in invalid-expression; + return new self::_Y::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.weak.expect index 1e7a7cc4fc8..f1030db1fa1 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.weak.expect @@ -17,7 +17,7 @@ class A extends core::Object { : self::A::field = field, super core::Object::•() ; static factory redirect([core::int field]) → self::A - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(field); } static method main() → dynamic { self::expect(42, new self::A::•().{self::A::field}{core::int}); diff --git a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.weak.outline.expect index 352e5d191fb..c031d224e92 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.weak.outline.expect @@ -8,7 +8,7 @@ class A extends core::Object { constructor •([core::int field]) → self::A ; static factory redirect([core::int field]) → self::A - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(field); } static method main() → dynamic ; diff --git a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.weak.transformed.expect index 6b1dd6814f4..f1030db1fa1 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_default_value.dart.weak.transformed.expect @@ -17,7 +17,7 @@ class A extends core::Object { : self::A::field = field, super core::Object::•() ; static factory redirect([core::int field]) → self::A - let Never #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(field); } static method main() → dynamic { self::expect(42, new self::A::•().{self::A::field}{core::int}); diff --git a/pkg/front_end/testcases/general/redirecting_factory_invocation_in_invalid.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_factory_invocation_in_invalid.dart.weak.expect index 1ce6e05cc5e..27d959b778a 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_invocation_in_invalid.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_invocation_in_invalid.dart.weak.expect @@ -106,7 +106,7 @@ class Class1 extends core::Object { : super core::Object::•() ; static factory •() → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(); get getter() → core::int return 0; } diff --git a/pkg/front_end/testcases/general/redirecting_factory_invocation_in_invalid.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_invocation_in_invalid.dart.weak.outline.expect index 83aea2ef3b5..8977ba15143 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_invocation_in_invalid.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_invocation_in_invalid.dart.weak.outline.expect @@ -8,7 +8,7 @@ class Class1 extends core::Object { constructor _() → self::Class1 ; static factory •() → self::Class1 - let dynamic #redirecting_factory = self::Class1::_ in invalid-expression; + return new self::Class1::_(); get getter() → core::int ; } diff --git a/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.weak.expect index 5da2827b95b..9cea1c88259 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.weak.expect @@ -9,7 +9,7 @@ class Foo extends core::Object { ; @#C1 static factory •(@#C2 @#C3 dynamic p) → self::Foo* - let dynamic #redirecting_factory = self::Foo::named in invalid-expression; + return new self::Foo::named(p); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.weak.outline.expect index a83d25d5f9e..f807177b19e 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.weak.outline.expect @@ -8,7 +8,7 @@ class Foo extends core::Object { ; @self::forFactoryItself static factory •(dynamic p) → self::Foo* - let dynamic #redirecting_factory = self::Foo::named in invalid-expression; + return new self::Foo::named(p); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.weak.transformed.expect index f7a4f91fde2..9cea1c88259 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_metadata.dart.weak.transformed.expect @@ -9,7 +9,7 @@ class Foo extends core::Object { ; @#C1 static factory •(@#C2 @#C3 dynamic p) → self::Foo* - let Never #redirecting_factory = self::Foo::named in invalid-expression; + return new self::Foo::named(p); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.weak.expect index de93fd8fc42..ca460afdac3 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.weak.expect @@ -8,7 +8,7 @@ class A extends core::Object { : super core::Object::•() ; static factory redir() → self::A* - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.weak.outline.expect index 43d56974ac4..8549d41fb5e 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.weak.outline.expect @@ -7,7 +7,7 @@ class A extends core::Object { constructor •() → self::A* ; static factory redir() → self::A* - let dynamic #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.weak.transformed.expect index e4b7dde5083..ca460afdac3 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_simple_test.dart.weak.transformed.expect @@ -8,7 +8,7 @@ class A extends core::Object { : super core::Object::•() ; static factory redir() → self::A* - let Never #redirecting_factory = self::A::• in invalid-expression; + return new self::A::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.expect index 05a71857b09..b3ec99ad647 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.expect @@ -28,7 +28,7 @@ class A extends core::Object { : super core::Object::•() ; static factory redir() → self::A* - let dynamic #redirecting_factory = self::B::• in let self::Y* #typeArg0 = null in invalid-expression; + return new self::B::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.outline.expect index 3cc165900b3..fedbec2bf24 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.outline.expect @@ -25,7 +25,7 @@ class A extends core::Object { constructor •() → self::A* ; static factory redir() → self::A* - let dynamic #redirecting_factory = self::B::• in let self::Y* #typeArg0 = null in invalid-expression; + return new self::B::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.transformed.expect index 5fac4ba53a3..b3ec99ad647 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.transformed.expect @@ -28,7 +28,7 @@ class A extends core::Object { : super core::Object::•() ; static factory redir() → self::A* - let Never #redirecting_factory = self::B::• in let self::Y* #typeArg0 = null in invalid-expression; + return new self::B::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.weak.expect index 19f5ced0cb0..d5fafac8d5c 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.weak.expect @@ -8,7 +8,7 @@ class A ex : super core::Object::•() ; static factory redir(self::A::redir::T* t, self::A::redir::S* s) → self::A* - let dynamic #redirecting_factory = self::A::• in let self::A::redir::T* #typeArg0 = null in let self::A::redir::S* #typeArg1 = null in invalid-expression; + return new self::A::•(t, s); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.weak.outline.expect index edba96723b1..3bf64578cfd 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.weak.outline.expect @@ -7,7 +7,7 @@ class A ex constructor •(self::A::T* t, self::A::S* s) → self::A* ; static factory redir(self::A::redir::T* t, self::A::redir::S* s) → self::A* - let dynamic #redirecting_factory = self::A::• in let self::A::redir::T* #typeArg0 = null in let self::A::redir::S* #typeArg1 = null in invalid-expression; + return new self::A::•(t, s); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.weak.transformed.expect index aab753dac22..d5fafac8d5c 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_typeparam_test.dart.weak.transformed.expect @@ -8,7 +8,7 @@ class A ex : super core::Object::•() ; static factory redir(self::A::redir::T* t, self::A::redir::S* s) → self::A* - let Never #redirecting_factory = self::A::• in let self::A::redir::T* #typeArg0 = null in let self::A::redir::S* #typeArg1 = null in invalid-expression; + return new self::A::•(t, s); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.weak.expect index 521ea4e2105..6b9f76b69d4 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.weak.expect @@ -28,7 +28,7 @@ class A exte : super core::Object::•() ; static factory redir(self::A::redir::T* t, self::A::redir::S* s) → self::A* - let dynamic #redirecting_factory = self::A::• in let self::A::redir::T* #typeArg0 = null in let self::A::redir::S* #typeArg1 = null in invalid-expression; + return new self::A::•(t, s); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.weak.outline.expect index 2551eab9a2a..522c0dc2002 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.weak.outline.expect @@ -25,7 +25,7 @@ class A exte constructor •(self::A::T* t, self::A::S* s) → self::A* ; static factory redir(self::A::redir::T* t, self::A::redir::S* s) → self::A* - let dynamic #redirecting_factory = self::A::• in let self::A::redir::T* #typeArg0 = null in let self::A::redir::S* #typeArg1 = null in invalid-expression; + return new self::A::•(t, s); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.weak.transformed.expect index a07765d5339..6b9f76b69d4 100644 --- a/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_factory_typeparambounds_test.dart.weak.transformed.expect @@ -28,7 +28,7 @@ class A exte : super core::Object::•() ; static factory redir(self::A::redir::T* t, self::A::redir::S* s) → self::A* - let Never #redirecting_factory = self::A::• in let self::A::redir::T* #typeArg0 = null in let self::A::redir::S* #typeArg1 = null in invalid-expression; + return new self::A::•(t, s); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/general/redirection_chain_type_arguments.dart.weak.expect b/pkg/front_end/testcases/general/redirection_chain_type_arguments.dart.weak.expect index e9d6519f05f..45971e6f93c 100644 --- a/pkg/front_end/testcases/general/redirection_chain_type_arguments.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirection_chain_type_arguments.dart.weak.expect @@ -11,7 +11,7 @@ class A extends core::Object { : super core::Object::•() ; static factory •() → self::A* - let dynamic #redirecting_factory = self::B::• in let self::A::•::T* #typeArg0 = null in let core::num* #typeArg1 = null in invalid-expression; + return self::B::•(); abstract member-signature method toString() → core::String*; -> core::Object::toString abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf @@ -29,7 +29,7 @@ class B ex : super self::A::empty() ; static factory •() → self::B* - let dynamic #redirecting_factory = self::C::• in let self::B::•::U* #typeArg0 = null in let self::B::•::W* #typeArg1 = null in let core::String* #typeArg2 = null in invalid-expression; + return new self::C::•(); } class C extends self::B { constructor •() → self::C* diff --git a/pkg/front_end/testcases/general/redirection_chain_type_arguments.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirection_chain_type_arguments.dart.weak.outline.expect index abc87793038..97f2aa7c6b2 100644 --- a/pkg/front_end/testcases/general/redirection_chain_type_arguments.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirection_chain_type_arguments.dart.weak.outline.expect @@ -9,7 +9,7 @@ class A extends core::Object { constructor empty() → self::A* ; static factory •() → self::A* - let dynamic #redirecting_factory = self::B::• in let self::A::•::T* #typeArg0 = null in let core::num* #typeArg1 = null in invalid-expression; + return self::B::•(); abstract member-signature method toString() → core::String*; -> core::Object::toString abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf @@ -26,7 +26,7 @@ class B ex constructor empty() → self::B* ; static factory •() → self::B* - let dynamic #redirecting_factory = self::C::• in let self::B::•::U* #typeArg0 = null in let self::B::•::W* #typeArg1 = null in let core::String* #typeArg2 = null in invalid-expression; + return new self::C::•(); } class C extends self::B { constructor •() → self::C* diff --git a/pkg/front_end/testcases/general/redirection_chain_type_arguments.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirection_chain_type_arguments.dart.weak.transformed.expect index 44022ca948e..45971e6f93c 100644 --- a/pkg/front_end/testcases/general/redirection_chain_type_arguments.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirection_chain_type_arguments.dart.weak.transformed.expect @@ -11,7 +11,7 @@ class A extends core::Object { : super core::Object::•() ; static factory •() → self::A* - let () →* self::B* #redirecting_factory = self::B::• in let self::A::•::T* #typeArg0 = null in let core::num* #typeArg1 = null in invalid-expression; + return self::B::•(); abstract member-signature method toString() → core::String*; -> core::Object::toString abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf @@ -29,7 +29,7 @@ class B ex : super self::A::empty() ; static factory •() → self::B* - let Never #redirecting_factory = self::C::• in let self::B::•::U* #typeArg0 = null in let self::B::•::W* #typeArg1 = null in let core::String* #typeArg2 = null in invalid-expression; + return new self::C::•(); } class C extends self::B { constructor •() → self::C* diff --git a/pkg/front_end/testcases/general/redirection_chain_type_arguments_subst.dart.weak.expect b/pkg/front_end/testcases/general/redirection_chain_type_arguments_subst.dart.weak.expect index 8f23e49a19b..21aa750fcd6 100644 --- a/pkg/front_end/testcases/general/redirection_chain_type_arguments_subst.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirection_chain_type_arguments_subst.dart.weak.expect @@ -11,7 +11,7 @@ abstract class A extends core::Object { : super core::Object::•() ; static factory •() → self::A* - let dynamic #redirecting_factory = self::B::• in let self::A::•::T* #typeArg0 = null in let core::List* #typeArg1 = null in invalid-expression; + return self::B::•*>(); abstract member-signature method toString() → core::String*; -> core::Object::toString abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf @@ -29,7 +29,7 @@ abstract class B() → self::B* - let dynamic #redirecting_factory = self::C::• in let self::B::•::U* #typeArg0 = null in let self::B::•::W* #typeArg1 = null in let core::Map* #typeArg2 = null in invalid-expression; + return new self::C::•*>(); } class C extends self::B { constructor •() → self::C* diff --git a/pkg/front_end/testcases/general/redirection_chain_type_arguments_subst.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirection_chain_type_arguments_subst.dart.weak.outline.expect index 9e9532239f1..fc699bbb6bf 100644 --- a/pkg/front_end/testcases/general/redirection_chain_type_arguments_subst.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirection_chain_type_arguments_subst.dart.weak.outline.expect @@ -9,7 +9,7 @@ abstract class A extends core::Object { constructor empty() → self::A* ; static factory •() → self::A* - let dynamic #redirecting_factory = self::B::• in let self::A::•::T* #typeArg0 = null in let core::List* #typeArg1 = null in invalid-expression; + return self::B::•*>(); abstract member-signature method toString() → core::String*; -> core::Object::toString abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf @@ -26,7 +26,7 @@ abstract class B* ; static factory •() → self::B* - let dynamic #redirecting_factory = self::C::• in let self::B::•::U* #typeArg0 = null in let self::B::•::W* #typeArg1 = null in let core::Map* #typeArg2 = null in invalid-expression; + return new self::C::•*>(); } class C extends self::B { constructor •() → self::C* diff --git a/pkg/front_end/testcases/general/redirection_chain_type_arguments_subst.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirection_chain_type_arguments_subst.dart.weak.transformed.expect index 7d52b3ba927..21aa750fcd6 100644 --- a/pkg/front_end/testcases/general/redirection_chain_type_arguments_subst.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirection_chain_type_arguments_subst.dart.weak.transformed.expect @@ -11,7 +11,7 @@ abstract class A extends core::Object { : super core::Object::•() ; static factory •() → self::A* - let () →* self::B* #redirecting_factory = self::B::• in let self::A::•::T* #typeArg0 = null in let core::List* #typeArg1 = null in invalid-expression; + return self::B::•*>(); abstract member-signature method toString() → core::String*; -> core::Object::toString abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf @@ -29,7 +29,7 @@ abstract class B() → self::B* - let Never #redirecting_factory = self::C::• in let self::B::•::U* #typeArg0 = null in let self::B::•::W* #typeArg1 = null in let core::Map* #typeArg2 = null in invalid-expression; + return new self::C::•*>(); } class C extends self::B { constructor •() → self::C* diff --git a/pkg/front_end/testcases/general/redirection_type_arguments.dart.weak.expect b/pkg/front_end/testcases/general/redirection_type_arguments.dart.weak.expect index ed8ef828581..e858e7dc18f 100644 --- a/pkg/front_end/testcases/general/redirection_type_arguments.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirection_type_arguments.dart.weak.expect @@ -11,7 +11,7 @@ class A extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; static factory •() → self::A* - let dynamic #redirecting_factory = self::B::• in let core::String* #typeArg0 = null in invalid-expression; + return new self::B::•(); abstract member-signature method toString() → core::String*; -> core::Object::toString abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf diff --git a/pkg/front_end/testcases/general/redirection_type_arguments.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirection_type_arguments.dart.weak.outline.expect index ca134d11696..0d1b358ad39 100644 --- a/pkg/front_end/testcases/general/redirection_type_arguments.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirection_type_arguments.dart.weak.outline.expect @@ -10,7 +10,7 @@ class A extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; static factory •() → self::A* - let dynamic #redirecting_factory = self::B::• in let core::String* #typeArg0 = null in invalid-expression; + return new self::B::•(); abstract member-signature method toString() → core::String*; -> core::Object::toString abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf diff --git a/pkg/front_end/testcases/general/redirection_type_arguments.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirection_type_arguments.dart.weak.transformed.expect index c1c3aa51e56..e858e7dc18f 100644 --- a/pkg/front_end/testcases/general/redirection_type_arguments.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirection_type_arguments.dart.weak.transformed.expect @@ -11,7 +11,7 @@ class A extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; static factory •() → self::A* - let Never #redirecting_factory = self::B::• in let core::String* #typeArg0 = null in invalid-expression; + return new self::B::•(); abstract member-signature method toString() → core::String*; -> core::Object::toString abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf diff --git a/pkg/front_end/testcases/incremental/changing_modules_8.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_8.yaml.world.1.expect index cde35c2f419..39507e35025 100644 --- a/pkg/front_end/testcases/incremental/changing_modules_8.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/changing_modules_8.yaml.world.1.expect @@ -14,7 +14,7 @@ library from "package:module/lib1.dart" as lib1 { abstract class XSet extends dart.core::Object { static final field dynamic _redirecting# = [lib1::XSet::identity]; static factory identity() → lib1::XSet* - let dynamic #redirecting_factory = lib2::XLinkedHashSet::identity in invalid-expression; + return lib2::XLinkedHashSet::identity(); abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf @@ -35,7 +35,7 @@ library from "package:module/lib2.dart" as lib2 { class XLinkedHashSet extends dart.core::Object implements lib1::XSet { static final field dynamic _redirecting# = [lib2::XLinkedHashSet::identity]; static factory identity() → lib2::XLinkedHashSet* - let dynamic #redirecting_factory = lib3::XIdentityHashSet::• in invalid-expression; + return new lib3::XIdentityHashSet::•(); abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.1.expect b/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.1.expect index 3b0a7e59dbb..71134e05703 100644 --- a/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.1.expect @@ -14,7 +14,7 @@ library from "org-dartlang-test:///lib.dart" as lib { : super dart.core::Object::•() ; static factory e4() → lib::C* - let dynamic #redirecting_factory = lib::C::• in invalid-expression; + return new lib::C::•(); abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.2.expect b/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.2.expect index bec03e760a4..9a40608b0a7 100644 --- a/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.2.expect +++ b/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.2.expect @@ -14,7 +14,7 @@ library from "org-dartlang-test:///lib.dart" as lib { : super dart.core::Object::•() ; static factory e4() → lib::C* - let dynamic #redirecting_factory = lib::C::• in invalid-expression; + return new lib::C::•(); abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.1.expect b/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.1.expect index 7d948ed493d..e334a8feff5 100644 --- a/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.1.expect @@ -50,7 +50,7 @@ library from "org-dartlang-test:///foo.dart" as foo { : super fra::Widget::•($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4) ; static factory •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Bar - let dynamic #redirecting_factory = foo::Bar::_ in invalid-expression; + return new foo::Bar::_($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4); } class Baz extends fra::Widget /*hasConstConstructor*/ { static final field dynamic _redirecting# = [foo::Baz::_]/*isLegacy*/; @@ -60,7 +60,7 @@ library from "org-dartlang-test:///foo.dart" as foo { static factory •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Baz return #C11; static factory _({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Baz - let dynamic #redirecting_factory = foo::Baz::__ in invalid-expression; + return new foo::Baz::__($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4); } class Boz extends fra::Widget /*hasConstConstructor*/ { const constructor _({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Boz diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.2.expect b/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.2.expect index b101e36b4dc..c1f530e2dea 100644 --- a/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.2.expect +++ b/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.2.expect @@ -50,7 +50,7 @@ library from "org-dartlang-test:///foo.dart" as foo { : super fra::Widget::•($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4) ; static factory •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Bar - let dynamic #redirecting_factory = foo::Bar::_ in invalid-expression; + return new foo::Bar::_($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4); } class Baz extends fra::Widget /*hasConstConstructor*/ { static final field dynamic _redirecting# = [foo::Baz::_]/*isLegacy*/; @@ -60,7 +60,7 @@ library from "org-dartlang-test:///foo.dart" as foo { static factory •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Baz return #C11; static factory _({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Baz - let dynamic #redirecting_factory = foo::Baz::__ in invalid-expression; + return new foo::Baz::__($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4); } class Boz extends fra::Widget /*hasConstConstructor*/ { const constructor _({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Boz diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.3.expect b/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.3.expect index 7d948ed493d..e334a8feff5 100644 --- a/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.3.expect +++ b/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.3.expect @@ -50,7 +50,7 @@ library from "org-dartlang-test:///foo.dart" as foo { : super fra::Widget::•($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4) ; static factory •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Bar - let dynamic #redirecting_factory = foo::Bar::_ in invalid-expression; + return new foo::Bar::_($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4); } class Baz extends fra::Widget /*hasConstConstructor*/ { static final field dynamic _redirecting# = [foo::Baz::_]/*isLegacy*/; @@ -60,7 +60,7 @@ library from "org-dartlang-test:///foo.dart" as foo { static factory •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Baz return #C11; static factory _({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Baz - let dynamic #redirecting_factory = foo::Baz::__ in invalid-expression; + return new foo::Baz::__($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4); } class Boz extends fra::Widget /*hasConstConstructor*/ { const constructor _({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → foo::Boz diff --git a/pkg/front_end/testcases/incremental/issue_41976.yaml.world.1.expect b/pkg/front_end/testcases/incremental/issue_41976.yaml.world.1.expect index d9b1730717b..008ff7ab3a6 100644 --- a/pkg/front_end/testcases/incremental/issue_41976.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/issue_41976.yaml.world.1.expect @@ -7,7 +7,7 @@ library from "org-dartlang-test:///foo.dart" as foo { : super dart.core::Object::•() ; static factory •(dart.core::String* value) → foo::Key* - let dynamic #redirecting_factory = foo::ValueKey::• in invalid-expression; + return new foo::ValueKey::•(value); abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.1.expect index 5157f4fa567..02964ab87fe 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.1.expect @@ -6,7 +6,7 @@ library from "org-dartlang-test:///lib1.dart" as lib1 { class Foo extends dart.core::Object { static final field dynamic _redirecting# = [lib1::Foo::•]; static factory •() → lib1::Foo* - let dynamic #redirecting_factory = lib2::Bar::• in invalid-expression; + return new lib2::Bar::•(); abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.2.expect index e289c2a5d25..14d998a4a6c 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.2.expect +++ b/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.2.expect @@ -6,7 +6,7 @@ library from "org-dartlang-test:///lib1.dart" as lib1 { class Foo extends dart.core::Object { static final field dynamic _redirecting# = [lib1::Foo::•]; static factory •() → lib1::Foo* - let dynamic #redirecting_factory = lib2::Bar::• in invalid-expression; + return new lib2::Bar::•(); abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.1.expect index 47fdc2bb122..8cde08e3416 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.1.expect @@ -7,7 +7,7 @@ library from "org-dartlang-test:///main.dart" as main { : super dart.core::Object::•() ; static factory bar() → main::Foo* - let dynamic #redirecting_factory = main::Baz::• in invalid-expression; + return new main::Baz::•(); method bar() → void {} abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf diff --git a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.2.expect index 47fdc2bb122..8cde08e3416 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.2.expect +++ b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.2.expect @@ -7,7 +7,7 @@ library from "org-dartlang-test:///main.dart" as main { : super dart.core::Object::•() ; static factory bar() → main::Foo* - let dynamic #redirecting_factory = main::Baz::• in invalid-expression; + return new main::Baz::•(); method bar() → void {} abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.expect index d10efba4727..e347a7ded50 100644 --- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.expect +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.expect @@ -7,7 +7,7 @@ abstract class C extends core::Object { abstract get t() → self::C::T*; abstract set t(generic-covariant-impl self::C::T* x) → void; static factory •(self::C::•::T* t) → self::C* - let dynamic #redirecting_factory = self::CImpl::• in let self::C::•::T* #typeArg0 = null in invalid-expression; + return new self::CImpl::•(t); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.outline.expect index 024beff88fe..1056c9701d2 100644 --- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.outline.expect @@ -7,7 +7,7 @@ abstract class C extends core::Object { abstract get t() → self::C::T*; abstract set t(generic-covariant-impl self::C::T* x) → void; static factory •(self::C::•::T* t) → self::C* - let dynamic #redirecting_factory = self::CImpl::• in let self::C::•::T* #typeArg0 = null in invalid-expression; + return new self::CImpl::•(t); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.transformed.expect index 39e8848c5b7..e347a7ded50 100644 --- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.transformed.expect @@ -7,7 +7,7 @@ abstract class C extends core::Object { abstract get t() → self::C::T*; abstract set t(generic-covariant-impl self::C::T* x) → void; static factory •(self::C::•::T* t) → self::C* - let Never #redirecting_factory = self::CImpl::• in let self::C::•::T* #typeArg0 = null in invalid-expression; + return new self::CImpl::•(t); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.expect index ac3f37a4fec..2f9257b54f5 100644 --- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.expect +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.expect @@ -7,7 +7,7 @@ abstract class C extends core::Object { abstract get t() → self::C::T*; abstract set t(generic-covariant-impl self::C::T* x) → void; static factory •(self::C::•::T* t) → self::C* - let dynamic #redirecting_factory = self::CImpl::• in let self::C::•::T* #typeArg0 = null in invalid-expression; + return self::CImpl::•(t); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.outline.expect index 9f89adf32fb..6eaaeb262ce 100644 --- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.outline.expect @@ -7,7 +7,7 @@ abstract class C extends core::Object { abstract get t() → self::C::T*; abstract set t(generic-covariant-impl self::C::T* x) → void; static factory •(self::C::•::T* t) → self::C* - let dynamic #redirecting_factory = self::CImpl::• in let self::C::•::T* #typeArg0 = null in invalid-expression; + return self::CImpl::•(t); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.transformed.expect index 9bae3197163..2f9257b54f5 100644 --- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.transformed.expect @@ -7,7 +7,7 @@ abstract class C extends core::Object { abstract get t() → self::C::T*; abstract set t(generic-covariant-impl self::C::T* x) → void; static factory •(self::C::•::T* t) → self::C* - let (T*) →* self::CImpl* #redirecting_factory = self::CImpl::• in let self::C::•::T* #typeArg0 = null in invalid-expression; + return self::CImpl::•(t); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.expect index c6656a8ce50..26a075c9e00 100644 --- a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.expect @@ -136,15 +136,15 @@ class A extends core::Object { : super core::Object::•() ; static factory factory3([core::int i = #C1]) → self::A - let dynamic #redirecting_factory = self::A::constructor3 in invalid-expression; + return new self::A::constructor3(i); static factory factory4({core::int i = #C1}) → self::A - let dynamic #redirecting_factory = self::A::constructor4 in invalid-expression; + return new self::A::constructor4(i: i); static factory factory5([core::int? i = #C1]) → self::A - let dynamic #redirecting_factory = self::A::constructor5 in invalid-expression; + return new self::A::constructor5(i); static factory factory6({core::int? i = #C1}) → self::A - let dynamic #redirecting_factory = self::A::constructor6 in invalid-expression; + return new self::A::constructor6(i: i); static factory factory7({required core::int i = #C1}) → self::A - let dynamic #redirecting_factory = self::A::constructor7 in invalid-expression; + return new self::A::constructor7(i: i); static factory factory8([core::int i = #C1]) → self::A return new self::A::constructor3(); static factory factory9({core::int i = #C1}) → self::A @@ -197,15 +197,15 @@ class C extends core::Object implements self::B { : self::C::i = i, super core::Object::•() ; static factory factory3([core::int i = #C1]) → self::C - let dynamic #redirecting_factory = self::C::constructor3 in invalid-expression; + return new self::C::constructor3(i); static factory factory4({core::int i = #C1}) → self::C - let dynamic #redirecting_factory = self::C::constructor4 in invalid-expression; + return new self::C::constructor4(i: i); static factory factory5([core::int? i = #C1]) → self::C - let dynamic #redirecting_factory = self::C::constructor5 in invalid-expression; + return new self::C::constructor5(i); static factory factory6({core::int? i = #C1}) → self::C - let dynamic #redirecting_factory = self::C::constructor6 in invalid-expression; + return new self::C::constructor6(i: i); static factory factory7({required core::int i = #C1}) → self::C - let dynamic #redirecting_factory = self::C::constructor7 in invalid-expression; + return new self::C::constructor7(i: i); static factory factory8([core::int i = #C1]) → self::C return new self::C::constructor3(); static factory factory9({core::int i = #C1}) → self::C 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 f3893aaa0a0..b672730f1a3 100644 --- a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.transformed.expect @@ -136,15 +136,15 @@ class A extends core::Object { : super core::Object::•() ; static factory factory3([core::int i = #C1]) → self::A - let Never #redirecting_factory = self::A::constructor3 in invalid-expression; + return new self::A::constructor3(i); static factory factory4({core::int i = #C1}) → self::A - let Never #redirecting_factory = self::A::constructor4 in invalid-expression; + return new self::A::constructor4(i: i); static factory factory5([core::int? i = #C1]) → self::A - let Never #redirecting_factory = self::A::constructor5 in invalid-expression; + return new self::A::constructor5(i); static factory factory6({core::int? i = #C1}) → self::A - let Never #redirecting_factory = self::A::constructor6 in invalid-expression; + return new self::A::constructor6(i: i); static factory factory7({required core::int i = #C1}) → self::A - let Never #redirecting_factory = self::A::constructor7 in invalid-expression; + return new self::A::constructor7(i: i); static factory factory8([core::int i = #C1]) → self::A return new self::A::constructor3(); static factory factory9({core::int i = #C1}) → self::A @@ -197,15 +197,15 @@ class C extends core::Object implements self::B { : self::C::i = i, super core::Object::•() ; static factory factory3([core::int i = #C1]) → self::C - let Never #redirecting_factory = self::C::constructor3 in invalid-expression; + return new self::C::constructor3(i); static factory factory4({core::int i = #C1}) → self::C - let Never #redirecting_factory = self::C::constructor4 in invalid-expression; + return new self::C::constructor4(i: i); static factory factory5([core::int? i = #C1]) → self::C - let Never #redirecting_factory = self::C::constructor5 in invalid-expression; + return new self::C::constructor5(i); static factory factory6({core::int? i = #C1}) → self::C - let Never #redirecting_factory = self::C::constructor6 in invalid-expression; + return new self::C::constructor6(i: i); static factory factory7({required core::int i = #C1}) → self::C - let Never #redirecting_factory = self::C::constructor7 in invalid-expression; + return new self::C::constructor7(i: i); static factory factory8([core::int i = #C1]) → self::C return new self::C::constructor3(); static factory factory9({core::int i = #C1}) → self::C diff --git a/pkg/front_end/testcases/nnbd/issue42362.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue42362.dart.weak.expect index c6656a8ce50..26a075c9e00 100644 --- a/pkg/front_end/testcases/nnbd/issue42362.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/issue42362.dart.weak.expect @@ -136,15 +136,15 @@ class A extends core::Object { : super core::Object::•() ; static factory factory3([core::int i = #C1]) → self::A - let dynamic #redirecting_factory = self::A::constructor3 in invalid-expression; + return new self::A::constructor3(i); static factory factory4({core::int i = #C1}) → self::A - let dynamic #redirecting_factory = self::A::constructor4 in invalid-expression; + return new self::A::constructor4(i: i); static factory factory5([core::int? i = #C1]) → self::A - let dynamic #redirecting_factory = self::A::constructor5 in invalid-expression; + return new self::A::constructor5(i); static factory factory6({core::int? i = #C1}) → self::A - let dynamic #redirecting_factory = self::A::constructor6 in invalid-expression; + return new self::A::constructor6(i: i); static factory factory7({required core::int i = #C1}) → self::A - let dynamic #redirecting_factory = self::A::constructor7 in invalid-expression; + return new self::A::constructor7(i: i); static factory factory8([core::int i = #C1]) → self::A return new self::A::constructor3(); static factory factory9({core::int i = #C1}) → self::A @@ -197,15 +197,15 @@ class C extends core::Object implements self::B { : self::C::i = i, super core::Object::•() ; static factory factory3([core::int i = #C1]) → self::C - let dynamic #redirecting_factory = self::C::constructor3 in invalid-expression; + return new self::C::constructor3(i); static factory factory4({core::int i = #C1}) → self::C - let dynamic #redirecting_factory = self::C::constructor4 in invalid-expression; + return new self::C::constructor4(i: i); static factory factory5([core::int? i = #C1]) → self::C - let dynamic #redirecting_factory = self::C::constructor5 in invalid-expression; + return new self::C::constructor5(i); static factory factory6({core::int? i = #C1}) → self::C - let dynamic #redirecting_factory = self::C::constructor6 in invalid-expression; + return new self::C::constructor6(i: i); static factory factory7({required core::int i = #C1}) → self::C - let dynamic #redirecting_factory = self::C::constructor7 in invalid-expression; + return new self::C::constructor7(i: i); static factory factory8([core::int i = #C1]) → self::C return new self::C::constructor3(); static factory factory9({core::int i = #C1}) → self::C diff --git a/pkg/front_end/testcases/nnbd/issue42362.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue42362.dart.weak.outline.expect index b2b3256ff95..0040b41632c 100644 --- a/pkg/front_end/testcases/nnbd/issue42362.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/issue42362.dart.weak.outline.expect @@ -107,15 +107,15 @@ class A extends core::Object { external constructor constructor9({core::int i}) → self::A ; static factory factory3([core::int i]) → self::A - let dynamic #redirecting_factory = self::A::constructor3 in invalid-expression; + return new self::A::constructor3(i); static factory factory4({core::int i}) → self::A - let dynamic #redirecting_factory = self::A::constructor4 in invalid-expression; + return new self::A::constructor4(i: i); static factory factory5([core::int? i]) → self::A - let dynamic #redirecting_factory = self::A::constructor5 in invalid-expression; + return new self::A::constructor5(i); static factory factory6({core::int? i}) → self::A - let dynamic #redirecting_factory = self::A::constructor6 in invalid-expression; + return new self::A::constructor6(i: i); static factory factory7({required core::int i}) → self::A - let dynamic #redirecting_factory = self::A::constructor7 in invalid-expression; + return new self::A::constructor7(i: i); static factory factory8([core::int i]) → self::A ; static factory factory9({core::int i}) → self::A @@ -161,15 +161,15 @@ class C extends core::Object implements self::B { constructor constructor7({required core::int i}) → self::C ; static factory factory3([core::int i]) → self::C - let dynamic #redirecting_factory = self::C::constructor3 in invalid-expression; + return new self::C::constructor3(i); static factory factory4({core::int i}) → self::C - let dynamic #redirecting_factory = self::C::constructor4 in invalid-expression; + return new self::C::constructor4(i: i); static factory factory5([core::int? i]) → self::C - let dynamic #redirecting_factory = self::C::constructor5 in invalid-expression; + return new self::C::constructor5(i); static factory factory6({core::int? i}) → self::C - let dynamic #redirecting_factory = self::C::constructor6 in invalid-expression; + return new self::C::constructor6(i: i); static factory factory7({required core::int i}) → self::C - let dynamic #redirecting_factory = self::C::constructor7 in invalid-expression; + return new self::C::constructor7(i: i); static factory factory8([core::int i]) → self::C ; static factory factory9({core::int i}) → self::C diff --git a/pkg/front_end/testcases/nnbd/issue42362.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42362.dart.weak.transformed.expect index a487c1a3af2..94f4fabd1bb 100644 --- a/pkg/front_end/testcases/nnbd/issue42362.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue42362.dart.weak.transformed.expect @@ -136,15 +136,15 @@ class A extends core::Object { : super core::Object::•() ; static factory factory3([core::int i = #C1]) → self::A - let Never #redirecting_factory = self::A::constructor3 in invalid-expression; + return new self::A::constructor3(i); static factory factory4({core::int i = #C1}) → self::A - let Never #redirecting_factory = self::A::constructor4 in invalid-expression; + return new self::A::constructor4(i: i); static factory factory5([core::int? i = #C1]) → self::A - let Never #redirecting_factory = self::A::constructor5 in invalid-expression; + return new self::A::constructor5(i); static factory factory6({core::int? i = #C1}) → self::A - let Never #redirecting_factory = self::A::constructor6 in invalid-expression; + return new self::A::constructor6(i: i); static factory factory7({required core::int i = #C1}) → self::A - let Never #redirecting_factory = self::A::constructor7 in invalid-expression; + return new self::A::constructor7(i: i); static factory factory8([core::int i = #C1]) → self::A return new self::A::constructor3(); static factory factory9({core::int i = #C1}) → self::A @@ -197,15 +197,15 @@ class C extends core::Object implements self::B { : self::C::i = i, super core::Object::•() ; static factory factory3([core::int i = #C1]) → self::C - let Never #redirecting_factory = self::C::constructor3 in invalid-expression; + return new self::C::constructor3(i); static factory factory4({core::int i = #C1}) → self::C - let Never #redirecting_factory = self::C::constructor4 in invalid-expression; + return new self::C::constructor4(i: i); static factory factory5([core::int? i = #C1]) → self::C - let Never #redirecting_factory = self::C::constructor5 in invalid-expression; + return new self::C::constructor5(i); static factory factory6({core::int? i = #C1}) → self::C - let Never #redirecting_factory = self::C::constructor6 in invalid-expression; + return new self::C::constructor6(i: i); static factory factory7({required core::int i = #C1}) → self::C - let Never #redirecting_factory = self::C::constructor7 in invalid-expression; + return new self::C::constructor7(i: i); static factory factory8([core::int i = #C1]) → self::C return new self::C::constructor3(); static factory factory9({core::int i = #C1}) → self::C diff --git a/pkg/front_end/testcases/nnbd/issue42844_1.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42844_1.dart.strong.expect index ed2262ca823..0c168d7ee9e 100644 --- a/pkg/front_end/testcases/nnbd/issue42844_1.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/issue42844_1.dart.strong.expect @@ -13,7 +13,7 @@ class C extends core::Object { field Never n = null; static final field dynamic _redirecting# = [self::C::•]/*isLegacy*/; static factory •(Never n) → self::C - let dynamic #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(n); } class D extends core::Object implements self::C { field Never n; diff --git a/pkg/front_end/testcases/nnbd/issue42844_1.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42844_1.dart.strong.transformed.expect index 6cf37396587..0c168d7ee9e 100644 --- a/pkg/front_end/testcases/nnbd/issue42844_1.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue42844_1.dart.strong.transformed.expect @@ -13,7 +13,7 @@ class C extends core::Object { field Never n = null; static final field dynamic _redirecting# = [self::C::•]/*isLegacy*/; static factory •(Never n) → self::C - let Never #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(n); } class D extends core::Object implements self::C { field Never n; diff --git a/pkg/front_end/testcases/nnbd/issue42844_1.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue42844_1.dart.weak.expect index ed2262ca823..0c168d7ee9e 100644 --- a/pkg/front_end/testcases/nnbd/issue42844_1.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/issue42844_1.dart.weak.expect @@ -13,7 +13,7 @@ class C extends core::Object { field Never n = null; static final field dynamic _redirecting# = [self::C::•]/*isLegacy*/; static factory •(Never n) → self::C - let dynamic #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(n); } class D extends core::Object implements self::C { field Never n; diff --git a/pkg/front_end/testcases/nnbd/issue42844_1.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue42844_1.dart.weak.outline.expect index 08fff2cbd72..18f72ef0555 100644 --- a/pkg/front_end/testcases/nnbd/issue42844_1.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/issue42844_1.dart.weak.outline.expect @@ -6,7 +6,7 @@ class C extends core::Object { field Never n; static final field dynamic _redirecting# = [self::C::•]/*isLegacy*/; static factory •(Never n) → self::C - let dynamic #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(n); } class D extends core::Object implements self::C { field Never n; diff --git a/pkg/front_end/testcases/nnbd/issue42844_1.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42844_1.dart.weak.transformed.expect index 6cf37396587..0c168d7ee9e 100644 --- a/pkg/front_end/testcases/nnbd/issue42844_1.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue42844_1.dart.weak.transformed.expect @@ -13,7 +13,7 @@ class C extends core::Object { field Never n = null; static final field dynamic _redirecting# = [self::C::•]/*isLegacy*/; static factory •(Never n) → self::C - let Never #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(n); } class D extends core::Object implements self::C { field Never n; diff --git a/pkg/front_end/testcases/nnbd/issue42844_2.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42844_2.dart.strong.expect index 9f4202da5e0..bd950c6494d 100644 --- a/pkg/front_end/testcases/nnbd/issue42844_2.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/issue42844_2.dart.strong.expect @@ -14,7 +14,7 @@ class C extends core::Object { final field dynamic n = null; static final field dynamic _redirecting# = [self::C::•]/*isLegacy*/; static factory •(dynamic n) → self::C - let dynamic #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(n); } class D extends core::Object implements self::C { final field dynamic n; diff --git a/pkg/front_end/testcases/nnbd/issue42844_2.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42844_2.dart.strong.transformed.expect index 6347dde2557..bd950c6494d 100644 --- a/pkg/front_end/testcases/nnbd/issue42844_2.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue42844_2.dart.strong.transformed.expect @@ -14,7 +14,7 @@ class C extends core::Object { final field dynamic n = null; static final field dynamic _redirecting# = [self::C::•]/*isLegacy*/; static factory •(dynamic n) → self::C - let Never #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(n); } class D extends core::Object implements self::C { final field dynamic n; diff --git a/pkg/front_end/testcases/nnbd/issue42844_2.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue42844_2.dart.weak.expect index 9f4202da5e0..bd950c6494d 100644 --- a/pkg/front_end/testcases/nnbd/issue42844_2.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/issue42844_2.dart.weak.expect @@ -14,7 +14,7 @@ class C extends core::Object { final field dynamic n = null; static final field dynamic _redirecting# = [self::C::•]/*isLegacy*/; static factory •(dynamic n) → self::C - let dynamic #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(n); } class D extends core::Object implements self::C { final field dynamic n; diff --git a/pkg/front_end/testcases/nnbd/issue42844_2.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue42844_2.dart.weak.outline.expect index afe3abd4958..53f7e372c3f 100644 --- a/pkg/front_end/testcases/nnbd/issue42844_2.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/issue42844_2.dart.weak.outline.expect @@ -6,7 +6,7 @@ class C extends core::Object { final field dynamic n; static final field dynamic _redirecting# = [self::C::•]/*isLegacy*/; static factory •(dynamic n) → self::C - let dynamic #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(n); } class D extends core::Object implements self::C { final field dynamic n; diff --git a/pkg/front_end/testcases/nnbd/issue42844_2.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42844_2.dart.weak.transformed.expect index 6347dde2557..bd950c6494d 100644 --- a/pkg/front_end/testcases/nnbd/issue42844_2.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue42844_2.dart.weak.transformed.expect @@ -14,7 +14,7 @@ class C extends core::Object { final field dynamic n = null; static final field dynamic _redirecting# = [self::C::•]/*isLegacy*/; static factory •(dynamic n) → self::C - let Never #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(n); } class D extends core::Object implements self::C { final field dynamic n; diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect index 19e109d874d..a02c4eff362 100644 --- a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect @@ -228,7 +228,7 @@ class C extends core::Object { self::D? b; } static factory redirect(self::A>? a) → self::C - let dynamic #redirecting_factory = self::C::internal in invalid-expression; + return new self::C::internal(a); static factory fact(self::A>? a) → self::C { self::A>? b; self::D? c; diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect index 48a5a0a8967..a02c4eff362 100644 --- a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect @@ -228,7 +228,7 @@ class C extends core::Object { self::D? b; } static factory redirect(self::A>? a) → self::C - let Never #redirecting_factory = self::C::internal in invalid-expression; + return new self::C::internal(a); static factory fact(self::A>? a) → self::C { self::A>? b; self::D? c; diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect index 19e109d874d..a02c4eff362 100644 --- a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect @@ -228,7 +228,7 @@ class C extends core::Object { self::D? b; } static factory redirect(self::A>? a) → self::C - let dynamic #redirecting_factory = self::C::internal in invalid-expression; + return new self::C::internal(a); static factory fact(self::A>? a) → self::C { self::A>? b; self::D? c; diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.outline.expect index aef5c333c32..39eaec6ce7a 100644 --- a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.outline.expect @@ -125,7 +125,7 @@ class C extends core::Object { constructor internal(dynamic _) → self::C ; static factory redirect(self::A>? a) → self::C - let dynamic #redirecting_factory = self::C::internal in invalid-expression; + return new self::C::internal(a); static factory fact(self::A>? a) → self::C ; } diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect index 48a5a0a8967..a02c4eff362 100644 --- a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect @@ -228,7 +228,7 @@ class C extends core::Object { self::D? b; } static factory redirect(self::A>? a) → self::C - let Never #redirecting_factory = self::C::internal in invalid-expression; + return new self::C::internal(a); static factory fact(self::A>? a) → self::C { self::A>? b; self::D? c; diff --git a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.expect index d62d1714f05..fd4ab1f56aa 100644 --- a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.expect @@ -24,7 +24,7 @@ class C extends core::Object { return new self::C::gen(); } static factory redirect({core::int i = #C1}) → self::C - let dynamic #redirecting_factory = self::C::gen in invalid-expression; + return new self::C::gen(i: i); } class D extends core::Object { synthetic constructor •() → self::D 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 25804c8218e..fd4ab1f56aa 100644 --- a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.transformed.expect @@ -24,7 +24,7 @@ class C extends core::Object { return new self::C::gen(); } static factory redirect({core::int i = #C1}) → self::C - let Never #redirecting_factory = self::C::gen in invalid-expression; + return new self::C::gen(i: i); } class D extends core::Object { synthetic constructor •() → self::D diff --git a/pkg/front_end/testcases/nnbd/issue43276.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43276.dart.weak.expect index d62d1714f05..fd4ab1f56aa 100644 --- a/pkg/front_end/testcases/nnbd/issue43276.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/issue43276.dart.weak.expect @@ -24,7 +24,7 @@ class C extends core::Object { return new self::C::gen(); } static factory redirect({core::int i = #C1}) → self::C - let dynamic #redirecting_factory = self::C::gen in invalid-expression; + return new self::C::gen(i: i); } class D extends core::Object { synthetic constructor •() → self::D diff --git a/pkg/front_end/testcases/nnbd/issue43276.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue43276.dart.weak.outline.expect index ac7b8e7908c..bff1a1e72cf 100644 --- a/pkg/front_end/testcases/nnbd/issue43276.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/issue43276.dart.weak.outline.expect @@ -22,7 +22,7 @@ class C extends core::Object { static factory fact({core::int i}) → self::C ; static factory redirect({core::int i}) → self::C - let dynamic #redirecting_factory = self::C::gen in invalid-expression; + return new self::C::gen(i: i); } class D extends core::Object { synthetic constructor •() → self::D diff --git a/pkg/front_end/testcases/nnbd/issue43276.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43276.dart.weak.transformed.expect index 25804c8218e..fd4ab1f56aa 100644 --- a/pkg/front_end/testcases/nnbd/issue43276.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue43276.dart.weak.transformed.expect @@ -24,7 +24,7 @@ class C extends core::Object { return new self::C::gen(); } static factory redirect({core::int i = #C1}) → self::C - let Never #redirecting_factory = self::C::gen in invalid-expression; + return new self::C::gen(i: i); } class D extends core::Object { synthetic constructor •() → self::D diff --git a/pkg/front_end/testcases/nnbd/issue43918.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43918.dart.strong.expect index 152826cbee8..e0382842153 100644 --- a/pkg/front_end/testcases/nnbd/issue43918.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/issue43918.dart.strong.expect @@ -5,7 +5,7 @@ import "dart:core" as core; abstract class A extends core::Object { static final field dynamic _redirecting# = [self::A::•]/*isLegacy*/; static factory •(self::A::•::T% value) → self::A - let dynamic #redirecting_factory = self::_A::• in let self::A::•::T% #typeArg0 = null in invalid-expression; + return new self::_A::•(value); } class _A extends core::Object implements self::A { constructor •(self::_A::T% value) → self::_A @@ -15,7 +15,7 @@ class _A extends core::Object implements self abstract class B extends core::Object { static final field dynamic _redirecting# = [self::B::•]/*isLegacy*/; static factory •(core::int value) → self::B - let dynamic #redirecting_factory = self::_B::• in let self::B::•::T% #typeArg0 = null in invalid-expression; + return new self::_B::•(value); } class _B extends core::Object implements self::B { constructor •(core::int value) → self::_B diff --git a/pkg/front_end/testcases/nnbd/issue43918.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43918.dart.strong.transformed.expect index 3ebf619d8a1..e0382842153 100644 --- a/pkg/front_end/testcases/nnbd/issue43918.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue43918.dart.strong.transformed.expect @@ -5,7 +5,7 @@ import "dart:core" as core; abstract class A extends core::Object { static final field dynamic _redirecting# = [self::A::•]/*isLegacy*/; static factory •(self::A::•::T% value) → self::A - let Never #redirecting_factory = self::_A::• in let self::A::•::T% #typeArg0 = null in invalid-expression; + return new self::_A::•(value); } class _A extends core::Object implements self::A { constructor •(self::_A::T% value) → self::_A @@ -15,7 +15,7 @@ class _A extends core::Object implements self abstract class B extends core::Object { static final field dynamic _redirecting# = [self::B::•]/*isLegacy*/; static factory •(core::int value) → self::B - let Never #redirecting_factory = self::_B::• in let self::B::•::T% #typeArg0 = null in invalid-expression; + return new self::_B::•(value); } class _B extends core::Object implements self::B { constructor •(core::int value) → self::_B diff --git a/pkg/front_end/testcases/nnbd/issue43918.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43918.dart.weak.expect index 152826cbee8..e0382842153 100644 --- a/pkg/front_end/testcases/nnbd/issue43918.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/issue43918.dart.weak.expect @@ -5,7 +5,7 @@ import "dart:core" as core; abstract class A extends core::Object { static final field dynamic _redirecting# = [self::A::•]/*isLegacy*/; static factory •(self::A::•::T% value) → self::A - let dynamic #redirecting_factory = self::_A::• in let self::A::•::T% #typeArg0 = null in invalid-expression; + return new self::_A::•(value); } class _A extends core::Object implements self::A { constructor •(self::_A::T% value) → self::_A @@ -15,7 +15,7 @@ class _A extends core::Object implements self abstract class B extends core::Object { static final field dynamic _redirecting# = [self::B::•]/*isLegacy*/; static factory •(core::int value) → self::B - let dynamic #redirecting_factory = self::_B::• in let self::B::•::T% #typeArg0 = null in invalid-expression; + return new self::_B::•(value); } class _B extends core::Object implements self::B { constructor •(core::int value) → self::_B diff --git a/pkg/front_end/testcases/nnbd/issue43918.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue43918.dart.weak.outline.expect index 1b9a3e0fc30..a50e08b8106 100644 --- a/pkg/front_end/testcases/nnbd/issue43918.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/issue43918.dart.weak.outline.expect @@ -5,7 +5,7 @@ import "dart:core" as core; abstract class A extends core::Object { static final field dynamic _redirecting# = [self::A::•]/*isLegacy*/; static factory •(self::A::•::T% value) → self::A - let dynamic #redirecting_factory = self::_A::• in let self::A::•::T% #typeArg0 = null in invalid-expression; + return new self::_A::•(value); } class _A extends core::Object implements self::A { constructor •(self::_A::T% value) → self::_A @@ -14,7 +14,7 @@ class _A extends core::Object implements self abstract class B extends core::Object { static final field dynamic _redirecting# = [self::B::•]/*isLegacy*/; static factory •(core::int value) → self::B - let dynamic #redirecting_factory = self::_B::• in let self::B::•::T% #typeArg0 = null in invalid-expression; + return new self::_B::•(value); } class _B extends core::Object implements self::B { constructor •(core::int value) → self::_B diff --git a/pkg/front_end/testcases/nnbd/issue43918.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43918.dart.weak.transformed.expect index 3ebf619d8a1..e0382842153 100644 --- a/pkg/front_end/testcases/nnbd/issue43918.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd/issue43918.dart.weak.transformed.expect @@ -5,7 +5,7 @@ import "dart:core" as core; abstract class A extends core::Object { static final field dynamic _redirecting# = [self::A::•]/*isLegacy*/; static factory •(self::A::•::T% value) → self::A - let Never #redirecting_factory = self::_A::• in let self::A::•::T% #typeArg0 = null in invalid-expression; + return new self::_A::•(value); } class _A extends core::Object implements self::A { constructor •(self::_A::T% value) → self::_A @@ -15,7 +15,7 @@ class _A extends core::Object implements self abstract class B extends core::Object { static final field dynamic _redirecting# = [self::B::•]/*isLegacy*/; static factory •(core::int value) → self::B - let Never #redirecting_factory = self::_B::• in let self::B::•::T% #typeArg0 = null in invalid-expression; + return new self::_B::•(value); } class _B extends core::Object implements self::B { constructor •(core::int value) → self::_B diff --git a/pkg/front_end/testcases/nnbd/override_checks.dart.strong.expect b/pkg/front_end/testcases/nnbd/override_checks.dart.strong.expect index 661f38d52bc..2640926ea61 100644 --- a/pkg/front_end/testcases/nnbd/override_checks.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/override_checks.dart.strong.expect @@ -64,7 +64,10 @@ class B2 extends self::B1 { class C1 extends core::Object { static final field dynamic _redirecting# = [self::C1::•]/*isLegacy*/; static factory •() → self::C1 - let dynamic #redirecting_factory = self::C2::• in let core::int? #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/nnbd/override_checks.dart:20:18: Error: The type 'int?' doesn't extend 'int'. +Try using a different type as argument. + factory C1() = C2; // Error in strong mode and Warning in weak mode. + ^"; } class C2 extends core::Object implements self::C1 { synthetic constructor •() → self::C2 @@ -77,6 +80,9 @@ class D extends core::Object { : super core::Object::•() ; static factory bar(core::num? x) → self::D - let dynamic #redirecting_factory = self::D::foo in invalid-expression; + return invalid-expression "pkg/front_end/testcases/nnbd/override_checks.dart:27:27: Error: The constructor function type 'D Function(num)' isn't a subtype of 'D Function(num?)'. + - 'D' is from 'pkg/front_end/testcases/nnbd/override_checks.dart'. + factory D.bar(num? x) = D.foo; // Error in strong mode and Warning in weak mode. + ^"; } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/nnbd/override_checks.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/override_checks.dart.strong.transformed.expect index 1ac0b20ca65..2640926ea61 100644 --- a/pkg/front_end/testcases/nnbd/override_checks.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nnbd/override_checks.dart.strong.transformed.expect @@ -64,7 +64,10 @@ class B2 extends self::B1 { class C1 extends core::Object { static final field dynamic _redirecting# = [self::C1::•]/*isLegacy*/; static factory •() → self::C1 - let Never #redirecting_factory = self::C2::• in let core::int? #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/nnbd/override_checks.dart:20:18: Error: The type 'int?' doesn't extend 'int'. +Try using a different type as argument. + factory C1() = C2; // Error in strong mode and Warning in weak mode. + ^"; } class C2 extends core::Object implements self::C1 { synthetic constructor •() → self::C2 @@ -77,6 +80,9 @@ class D extends core::Object { : super core::Object::•() ; static factory bar(core::num? x) → self::D - let Never #redirecting_factory = self::D::foo in invalid-expression; + return invalid-expression "pkg/front_end/testcases/nnbd/override_checks.dart:27:27: Error: The constructor function type 'D Function(num)' isn't a subtype of 'D Function(num?)'. + - 'D' is from 'pkg/front_end/testcases/nnbd/override_checks.dart'. + factory D.bar(num? x) = D.foo; // Error in strong mode and Warning in weak mode. + ^"; } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/nnbd/override_checks.dart.weak.expect b/pkg/front_end/testcases/nnbd/override_checks.dart.weak.expect index 661f38d52bc..2640926ea61 100644 --- a/pkg/front_end/testcases/nnbd/override_checks.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/override_checks.dart.weak.expect @@ -64,7 +64,10 @@ class B2 extends self::B1 { class C1 extends core::Object { static final field dynamic _redirecting# = [self::C1::•]/*isLegacy*/; static factory •() → self::C1 - let dynamic #redirecting_factory = self::C2::• in let core::int? #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/nnbd/override_checks.dart:20:18: Error: The type 'int?' doesn't extend 'int'. +Try using a different type as argument. + factory C1() = C2; // Error in strong mode and Warning in weak mode. + ^"; } class C2 extends core::Object implements self::C1 { synthetic constructor •() → self::C2 @@ -77,6 +80,9 @@ class D extends core::Object { : super core::Object::•() ; static factory bar(core::num? x) → self::D - let dynamic #redirecting_factory = self::D::foo in invalid-expression; + return invalid-expression "pkg/front_end/testcases/nnbd/override_checks.dart:27:27: Error: The constructor function type 'D Function(num)' isn't a subtype of 'D Function(num?)'. + - 'D' is from 'pkg/front_end/testcases/nnbd/override_checks.dart'. + factory D.bar(num? x) = D.foo; // Error in strong mode and Warning in weak mode. + ^"; } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/nnbd/override_checks.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/override_checks.dart.weak.outline.expect index c5c7f90c9a3..1f2f60e41cb 100644 --- a/pkg/front_end/testcases/nnbd/override_checks.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/override_checks.dart.weak.outline.expect @@ -64,7 +64,10 @@ class B2 extends self::B1 { class C1 extends core::Object { static final field dynamic _redirecting# = [self::C1::•]/*isLegacy*/; static factory •() → self::C1 - let dynamic #redirecting_factory = self::C2::• in let core::int? #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/nnbd/override_checks.dart:20:18: Error: The type 'int?' doesn't extend 'int'. +Try using a different type as argument. + factory C1() = C2; // Error in strong mode and Warning in weak mode. + ^"; } class C2 extends core::Object implements self::C1 { synthetic constructor •() → self::C2 @@ -75,7 +78,10 @@ class D extends core::Object { constructor foo(core::num x) → self::D ; static factory bar(core::num? x) → self::D - let dynamic #redirecting_factory = self::D::foo in invalid-expression; + return invalid-expression "pkg/front_end/testcases/nnbd/override_checks.dart:27:27: Error: The constructor function type 'D Function(num)' isn't a subtype of 'D Function(num?)'. + - 'D' is from 'pkg/front_end/testcases/nnbd/override_checks.dart'. + factory D.bar(num? x) = D.foo; // Error in strong mode and Warning in weak mode. + ^"; } static method main() → dynamic ; diff --git a/pkg/front_end/testcases/nnbd/override_checks.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/override_checks.dart.weak.transformed.expect index 1ac0b20ca65..2640926ea61 100644 --- a/pkg/front_end/testcases/nnbd/override_checks.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd/override_checks.dart.weak.transformed.expect @@ -64,7 +64,10 @@ class B2 extends self::B1 { class C1 extends core::Object { static final field dynamic _redirecting# = [self::C1::•]/*isLegacy*/; static factory •() → self::C1 - let Never #redirecting_factory = self::C2::• in let core::int? #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/nnbd/override_checks.dart:20:18: Error: The type 'int?' doesn't extend 'int'. +Try using a different type as argument. + factory C1() = C2; // Error in strong mode and Warning in weak mode. + ^"; } class C2 extends core::Object implements self::C1 { synthetic constructor •() → self::C2 @@ -77,6 +80,9 @@ class D extends core::Object { : super core::Object::•() ; static factory bar(core::num? x) → self::D - let Never #redirecting_factory = self::D::foo in invalid-expression; + return invalid-expression "pkg/front_end/testcases/nnbd/override_checks.dart:27:27: Error: The constructor function type 'D Function(num)' isn't a subtype of 'D Function(num?)'. + - 'D' is from 'pkg/front_end/testcases/nnbd/override_checks.dart'. + factory D.bar(num? x) = D.foo; // Error in strong mode and Warning in weak mode. + ^"; } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/redirecting_factory.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/redirecting_factory.dart.weak.expect index 03c441d952c..9f5ab6a4e3d 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/redirecting_factory.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/redirecting_factory.dart.weak.expect @@ -8,6 +8,6 @@ class Class extends core::Object { : super core::Object::•() ; static factory redirect() → self::Class - let dynamic #redirecting_factory = self::Class::• in invalid-expression; + return new self::Class::•(); } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/redirecting_factory.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/redirecting_factory.dart.weak.outline.expect index 8527d755407..2dad0b18392 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/redirecting_factory.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/redirecting_factory.dart.weak.outline.expect @@ -7,7 +7,7 @@ class Class extends core::Object { constructor •() → self::Class ; static factory redirect() → self::Class - let dynamic #redirecting_factory = self::Class::• in invalid-expression; + return new self::Class::•(); } static method main() → dynamic ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/redirecting_factory.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/redirecting_factory.dart.weak.transformed.expect index f2556e68b5e..9f5ab6a4e3d 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/redirecting_factory.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/redirecting_factory.dart.weak.transformed.expect @@ -8,6 +8,6 @@ class Class extends core::Object { : super core::Object::•() ; static factory redirect() → self::Class - let Never #redirecting_factory = self::Class::• in invalid-expression; + return new self::Class::•(); } static method main() → dynamic {} diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect index e1d738d1881..34cee4f8572 100644 --- a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect @@ -39,9 +39,9 @@ class Class1 extends core::Object /*hasConstConstructor : super core::Object::•() ; static factory redirect() → opt::Class1 - let dynamic #redirecting_factory = opt::Class1::_ in let opt::Class1::redirect::T% #typeArg0 = null in invalid-expression; + return new opt::Class1::_(); static factory constRedirect() → opt::Class1 - let dynamic #redirecting_factory = opt::Class1::_ in let opt::Class1::constRedirect::T% #typeArg0 = null in invalid-expression; + return new opt::Class1::_(); static factory fact() → opt::Class1 return new opt::Class1::_(); } @@ -51,9 +51,9 @@ class Class2 extends core::Object /*hasConstConstructor* : super core::Object::•() ; static factory redirect() → opt::Class2 - let dynamic #redirecting_factory = opt::Class2::_ in let opt::Class2::redirect::T #typeArg0 = null in invalid-expression; + return new opt::Class2::_(); static factory constRedirect() → opt::Class2 - let dynamic #redirecting_factory = opt::Class2::_ in let opt::Class2::constRedirect::T #typeArg0 = null in invalid-expression; + return new opt::Class2::_(); static factory fact() → opt::Class2 return new opt::Class2::_(); } @@ -63,9 +63,9 @@ class Class3 extends core::Object /*hasConstConstructor* : super core::Object::•() ; static factory redirect() → opt::Class3 - let dynamic #redirecting_factory = opt::Class3::_ in let opt::Class3::redirect::T #typeArg0 = null in invalid-expression; + return new opt::Class3::_(); static factory constRedirect() → opt::Class3 - let dynamic #redirecting_factory = opt::Class3::_ in let opt::Class3::constRedirect::T #typeArg0 = null in invalid-expression; + return new opt::Class3::_(); static factory fact() → opt::Class3 return new opt::Class3::_(); } @@ -75,9 +75,9 @@ class Class4 extends core::Object /*hasConstC : super core::Object::•() ; static factory redirect() → opt::Class4 - let dynamic #redirecting_factory = opt::Class4::_ in let opt::Class4::redirect::T% #typeArg0 = null in invalid-expression; + return new opt::Class4::_(); static factory constRedirect() → opt::Class4 - let dynamic #redirecting_factory = opt::Class4::_ in let opt::Class4::constRedirect::T% #typeArg0 = null in invalid-expression; + return new opt::Class4::_(); static factory fact() → opt::Class4 return new opt::Class4::_(); } @@ -87,9 +87,9 @@ class Class5 extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; static factory redirect() → opt::Class5 - let dynamic #redirecting_factory = opt::Class5::_ in let opt::Class5::redirect::T% #typeArg0 = null in invalid-expression; + return new opt::Class5::_(); static factory constRedirect() → opt::Class5 - let dynamic #redirecting_factory = opt::Class5::_ in let opt::Class5::constRedirect::T% #typeArg0 = null in invalid-expression; + return new opt::Class5::_(); static factory fact() → opt::Class5 return new opt::Class5::_(); } diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.outline.expect index f70672f4831..958ab4cdc59 100644 --- a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.outline.expect @@ -16,9 +16,9 @@ class Class1 extends core::Object /*hasConstConstructor : super core::Object::•() ; static factory redirect() → self2::Class1 - let dynamic #redirecting_factory = self2::Class1::_ in let self2::Class1::redirect::T% #typeArg0 = null in invalid-expression; + return new self2::Class1::_(); static factory constRedirect() → self2::Class1 - let dynamic #redirecting_factory = self2::Class1::_ in let self2::Class1::constRedirect::T% #typeArg0 = null in invalid-expression; + return new self2::Class1::_(); static factory fact() → self2::Class1 ; } @@ -28,9 +28,9 @@ class Class2 extends core::Object /*hasConstConstructor* : super core::Object::•() ; static factory redirect() → self2::Class2 - let dynamic #redirecting_factory = self2::Class2::_ in let self2::Class2::redirect::T #typeArg0 = null in invalid-expression; + return new self2::Class2::_(); static factory constRedirect() → self2::Class2 - let dynamic #redirecting_factory = self2::Class2::_ in let self2::Class2::constRedirect::T #typeArg0 = null in invalid-expression; + return new self2::Class2::_(); static factory fact() → self2::Class2 ; } @@ -40,9 +40,9 @@ class Class3 extends core::Object /*hasConstConstructor* : super core::Object::•() ; static factory redirect() → self2::Class3 - let dynamic #redirecting_factory = self2::Class3::_ in let self2::Class3::redirect::T #typeArg0 = null in invalid-expression; + return new self2::Class3::_(); static factory constRedirect() → self2::Class3 - let dynamic #redirecting_factory = self2::Class3::_ in let self2::Class3::constRedirect::T #typeArg0 = null in invalid-expression; + return new self2::Class3::_(); static factory fact() → self2::Class3 ; } @@ -52,9 +52,9 @@ class Class4 extends core::Object /*hasConstC : super core::Object::•() ; static factory redirect() → self2::Class4 - let dynamic #redirecting_factory = self2::Class4::_ in let self2::Class4::redirect::T% #typeArg0 = null in invalid-expression; + return new self2::Class4::_(); static factory constRedirect() → self2::Class4 - let dynamic #redirecting_factory = self2::Class4::_ in let self2::Class4::constRedirect::T% #typeArg0 = null in invalid-expression; + return new self2::Class4::_(); static factory fact() → self2::Class4 ; } @@ -64,9 +64,9 @@ class Class5 extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; static factory redirect() → self2::Class5 - let dynamic #redirecting_factory = self2::Class5::_ in let self2::Class5::redirect::T% #typeArg0 = null in invalid-expression; + return new self2::Class5::_(); static factory constRedirect() → self2::Class5 - let dynamic #redirecting_factory = self2::Class5::_ in let self2::Class5::constRedirect::T% #typeArg0 = null in invalid-expression; + return new self2::Class5::_(); static factory fact() → self2::Class5 ; } diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect index e67696e508d..34cee4f8572 100644 --- a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect @@ -39,9 +39,9 @@ class Class1 extends core::Object /*hasConstConstructor : super core::Object::•() ; static factory redirect() → opt::Class1 - let Never #redirecting_factory = opt::Class1::_ in let opt::Class1::redirect::T% #typeArg0 = null in invalid-expression; + return new opt::Class1::_(); static factory constRedirect() → opt::Class1 - let Never #redirecting_factory = opt::Class1::_ in let opt::Class1::constRedirect::T% #typeArg0 = null in invalid-expression; + return new opt::Class1::_(); static factory fact() → opt::Class1 return new opt::Class1::_(); } @@ -51,9 +51,9 @@ class Class2 extends core::Object /*hasConstConstructor* : super core::Object::•() ; static factory redirect() → opt::Class2 - let Never #redirecting_factory = opt::Class2::_ in let opt::Class2::redirect::T #typeArg0 = null in invalid-expression; + return new opt::Class2::_(); static factory constRedirect() → opt::Class2 - let Never #redirecting_factory = opt::Class2::_ in let opt::Class2::constRedirect::T #typeArg0 = null in invalid-expression; + return new opt::Class2::_(); static factory fact() → opt::Class2 return new opt::Class2::_(); } @@ -63,9 +63,9 @@ class Class3 extends core::Object /*hasConstConstructor* : super core::Object::•() ; static factory redirect() → opt::Class3 - let Never #redirecting_factory = opt::Class3::_ in let opt::Class3::redirect::T #typeArg0 = null in invalid-expression; + return new opt::Class3::_(); static factory constRedirect() → opt::Class3 - let Never #redirecting_factory = opt::Class3::_ in let opt::Class3::constRedirect::T #typeArg0 = null in invalid-expression; + return new opt::Class3::_(); static factory fact() → opt::Class3 return new opt::Class3::_(); } @@ -75,9 +75,9 @@ class Class4 extends core::Object /*hasConstC : super core::Object::•() ; static factory redirect() → opt::Class4 - let Never #redirecting_factory = opt::Class4::_ in let opt::Class4::redirect::T% #typeArg0 = null in invalid-expression; + return new opt::Class4::_(); static factory constRedirect() → opt::Class4 - let Never #redirecting_factory = opt::Class4::_ in let opt::Class4::constRedirect::T% #typeArg0 = null in invalid-expression; + return new opt::Class4::_(); static factory fact() → opt::Class4 return new opt::Class4::_(); } @@ -87,9 +87,9 @@ class Class5 extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; static factory redirect() → opt::Class5 - let Never #redirecting_factory = opt::Class5::_ in let opt::Class5::redirect::T% #typeArg0 = null in invalid-expression; + return new opt::Class5::_(); static factory constRedirect() → opt::Class5 - let Never #redirecting_factory = opt::Class5::_ in let opt::Class5::constRedirect::T% #typeArg0 = null in invalid-expression; + return new opt::Class5::_(); static factory fact() → opt::Class5 return new opt::Class5::_(); } diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect index 0c9e63df2fa..2cb6f54bdc9 100644 --- a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect @@ -55,7 +55,7 @@ class CP extends opt::P /*hasConstConstructo : super opt::P::_(token) ; static factory •(core::Type type) → opt::CP - let dynamic #redirecting_factory = opt::CP::_ in let opt::CP::•::T #typeArg0 = null in invalid-expression; + return new opt::CP::_(type); } class Token extends core::Object /*hasConstConstructor*/ { const constructor •() → opt::Token @@ -68,7 +68,7 @@ class VP extends opt::P /*hasConstConstructo : super opt::P::_(token) ; static factory forToken(opt::Token token, opt::VP::forToken::T useValue) → opt::VP - let dynamic #redirecting_factory = opt::VP::_ in let opt::VP::forToken::T #typeArg0 = null in invalid-expression; + return new opt::VP::_(token, useValue); } class M extends core::Object /*hasConstConstructor*/ { final field core::List> list; diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.outline.expect index 06c295fdc29..ee92a0d0b70 100644 --- a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.outline.expect @@ -55,7 +55,7 @@ class CP extends opt::P /*hasConstConstructo : super opt::P::_(token) ; static factory •(core::Type type) → opt::CP - let dynamic #redirecting_factory = opt::CP::_ in let opt::CP::•::T #typeArg0 = null in invalid-expression; + return new opt::CP::_(type); } class Token extends core::Object /*hasConstConstructor*/ { const constructor •() → opt::Token @@ -68,7 +68,7 @@ class VP extends opt::P /*hasConstConstructo : super opt::P::_(token) ; static factory forToken(opt::Token token, opt::VP::forToken::T useValue) → opt::VP - let dynamic #redirecting_factory = opt::VP::_ in let opt::VP::forToken::T #typeArg0 = null in invalid-expression; + return new opt::VP::_(token, useValue); } class M extends core::Object /*hasConstConstructor*/ { final field core::List> list; @@ -82,4 +82,4 @@ Extra constant evaluation status: Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:15:14 -> ListConstant(const *>[const CP{P.token: Class*}, const VP{P.token: const XToken{}}]) Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:20:11 -> InstanceConstant(const M{M.list: const *>[const CP{P.token: Class*}, const VP{P.token: const XToken{}}]}) Evaluated: ListLiteral @ org-dartlang-testcase:///opt_in_lib.dart:36:24 -> ListConstant(const *>[]) -Extra constant evaluation: evaluated: 17, effectively constant: 3 +Extra constant evaluation: evaluated: 16, effectively constant: 3 diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect index 7b1f0d6e1c4..2cb6f54bdc9 100644 --- a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect @@ -55,7 +55,7 @@ class CP extends opt::P /*hasConstConstructo : super opt::P::_(token) ; static factory •(core::Type type) → opt::CP - let Never #redirecting_factory = opt::CP::_ in let opt::CP::•::T #typeArg0 = null in invalid-expression; + return new opt::CP::_(type); } class Token extends core::Object /*hasConstConstructor*/ { const constructor •() → opt::Token @@ -68,7 +68,7 @@ class VP extends opt::P /*hasConstConstructo : super opt::P::_(token) ; static factory forToken(opt::Token token, opt::VP::forToken::T useValue) → opt::VP - let Never #redirecting_factory = opt::VP::_ in let opt::VP::forToken::T #typeArg0 = null in invalid-expression; + return new opt::VP::_(token, useValue); } class M extends core::Object /*hasConstConstructor*/ { final field core::List> list; diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.strong.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.strong.expect index 435aedbf6cc..3df2a9b5f8d 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.strong.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.strong.expect @@ -6,9 +6,9 @@ typedef BAlias = self::B; class A extends core::Object { static final field dynamic _redirecting# = [self::A::•, self::A::named]/*isLegacy*/; static factory •() → self::A - let dynamic #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); static factory named() → self::A - let dynamic #redirecting_factory = self::B::named in invalid-expression; + return new self::B::named(); } class B extends core::Object implements self::A { constructor •() → self::B diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.strong.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.strong.transformed.expect index b58ffcf59b4..3df2a9b5f8d 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.strong.transformed.expect @@ -6,9 +6,9 @@ typedef BAlias = self::B; class A extends core::Object { static final field dynamic _redirecting# = [self::A::•, self::A::named]/*isLegacy*/; static factory •() → self::A - let Never #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); static factory named() → self::A - let Never #redirecting_factory = self::B::named in invalid-expression; + return new self::B::named(); } class B extends core::Object implements self::A { constructor •() → self::B diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.weak.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.weak.expect index 435aedbf6cc..3df2a9b5f8d 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.weak.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.weak.expect @@ -6,9 +6,9 @@ typedef BAlias = self::B; class A extends core::Object { static final field dynamic _redirecting# = [self::A::•, self::A::named]/*isLegacy*/; static factory •() → self::A - let dynamic #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); static factory named() → self::A - let dynamic #redirecting_factory = self::B::named in invalid-expression; + return new self::B::named(); } class B extends core::Object implements self::A { constructor •() → self::B diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.weak.outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.weak.outline.expect index 65b2862ec2d..978eeeaedca 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.weak.outline.expect @@ -6,9 +6,9 @@ typedef BAlias = self::B; class A extends core::Object { static final field dynamic _redirecting# = [self::A::•, self::A::named]/*isLegacy*/; static factory •() → self::A - let dynamic #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); static factory named() → self::A - let dynamic #redirecting_factory = self::B::named in invalid-expression; + return new self::B::named(); } class B extends core::Object implements self::A { constructor •() → self::B diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.weak.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.weak.transformed.expect index b58ffcf59b4..3df2a9b5f8d 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45051.dart.weak.transformed.expect @@ -6,9 +6,9 @@ typedef BAlias = self::B; class A extends core::Object { static final field dynamic _redirecting# = [self::A::•, self::A::named]/*isLegacy*/; static factory •() → self::A - let Never #redirecting_factory = self::B::• in invalid-expression; + return new self::B::•(); static factory named() → self::A - let Never #redirecting_factory = self::B::named in invalid-expression; + return new self::B::named(); } class B extends core::Object implements self::A { constructor •() → self::B diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.strong.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.strong.expect index 88129afd9d4..45b7e1ee7ef 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.strong.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.strong.expect @@ -75,7 +75,7 @@ class C extends core::Object { static factory •() → self::C return new self::C::foo(); static factory bar() → self::C - let dynamic #redirecting_factory = self::C::• in let self::C::bar::X% #typeArg0 = null in invalid-expression; + return self::C::•(); } class D extends core::Object { static final field dynamic _redirecting# = [self::D::bar]/*isLegacy*/; @@ -85,7 +85,7 @@ class D extends core::Object { static factory foo() → self::D return new self::D::•(); static factory bar() → self::D - let dynamic #redirecting_factory = self::D::• in let self::D::bar::X% #typeArg0 = null in invalid-expression; + return new self::D::•(); } static method test() → dynamic { self::C::•<(self::C) → self::C>(); diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.strong.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.strong.transformed.expect index eab7fa25afe..45b7e1ee7ef 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.strong.transformed.expect @@ -75,7 +75,7 @@ class C extends core::Object { static factory •() → self::C return new self::C::foo(); static factory bar() → self::C - let () → self::C #redirecting_factory = self::C::• in let self::C::bar::X% #typeArg0 = null in invalid-expression; + return self::C::•(); } class D extends core::Object { static final field dynamic _redirecting# = [self::D::bar]/*isLegacy*/; @@ -85,7 +85,7 @@ class D extends core::Object { static factory foo() → self::D return new self::D::•(); static factory bar() → self::D - let Never #redirecting_factory = self::D::• in let self::D::bar::X% #typeArg0 = null in invalid-expression; + return new self::D::•(); } static method test() → dynamic { self::C::•<(self::C) → self::C>(); diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.weak.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.weak.expect index 88129afd9d4..45b7e1ee7ef 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.weak.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.weak.expect @@ -75,7 +75,7 @@ class C extends core::Object { static factory •() → self::C return new self::C::foo(); static factory bar() → self::C - let dynamic #redirecting_factory = self::C::• in let self::C::bar::X% #typeArg0 = null in invalid-expression; + return self::C::•(); } class D extends core::Object { static final field dynamic _redirecting# = [self::D::bar]/*isLegacy*/; @@ -85,7 +85,7 @@ class D extends core::Object { static factory foo() → self::D return new self::D::•(); static factory bar() → self::D - let dynamic #redirecting_factory = self::D::• in let self::D::bar::X% #typeArg0 = null in invalid-expression; + return new self::D::•(); } static method test() → dynamic { self::C::•<(self::C) → self::C>(); diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.weak.outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.weak.outline.expect index 5bcbed25118..b89222a17de 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.weak.outline.expect @@ -12,7 +12,7 @@ class C extends core::Object { static factory •() → self::C ; static factory bar() → self::C - let dynamic #redirecting_factory = self::C::• in let self::C::bar::X% #typeArg0 = null in invalid-expression; + return self::C::•(); } class D extends core::Object { static final field dynamic _redirecting# = [self::D::bar]/*isLegacy*/; @@ -21,7 +21,7 @@ class D extends core::Object { static factory foo() → self::D ; static factory bar() → self::D - let dynamic #redirecting_factory = self::D::• in let self::D::bar::X% #typeArg0 = null in invalid-expression; + return new self::D::•(); } static method test() → dynamic ; diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.weak.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.weak.transformed.expect index eab7fa25afe..45b7e1ee7ef 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/issue45519_2.dart.weak.transformed.expect @@ -75,7 +75,7 @@ class C extends core::Object { static factory •() → self::C return new self::C::foo(); static factory bar() → self::C - let () → self::C #redirecting_factory = self::C::• in let self::C::bar::X% #typeArg0 = null in invalid-expression; + return self::C::•(); } class D extends core::Object { static final field dynamic _redirecting# = [self::D::bar]/*isLegacy*/; @@ -85,7 +85,7 @@ class D extends core::Object { static factory foo() → self::D return new self::D::•(); static factory bar() → self::D - let Never #redirecting_factory = self::D::• in let self::D::bar::X% #typeArg0 = null in invalid-expression; + return new self::D::•(); } static method test() → dynamic { self::C::•<(self::C) → self::C>(); diff --git a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.expect b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.expect index 6c4e211ef39..4ca626f1211 100644 --- a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.expect +++ b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.expect @@ -77,7 +77,9 @@ class C extends core::Object /*hasConstConstructor*/ { class D extends core::Object { static final field dynamic _redirecting# = [self::D::•]; static factory •() → self::D* - let dynamic #redirecting_factory = "Missing" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/rasta/class_hierarchy.dart:12:17: Error: Redirection constructor target not found: 'Missing' + factory D() = Missing; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -93,7 +95,7 @@ static method main() → void { new self::A::•(); new self::B::•(); new self::C::•(); - invalid-expression "pkg/front_end/testcases/rasta/class_hierarchy.dart:19:7: Error: Method not found: 'Missing'. - new D(); - ^"; + invalid-expression "pkg/front_end/testcases/rasta/class_hierarchy.dart:12:17: Error: Redirection constructor target not found: 'Missing' + factory D() = Missing; + ^"; } diff --git a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.outline.expect index 11d42becc0e..5a0190f6482 100644 --- a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.outline.expect +++ b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.outline.expect @@ -75,7 +75,9 @@ class C extends core::Object /*hasConstConstructor*/ { class D extends core::Object { static final field dynamic _redirecting# = [self::D::•]; static factory •() → self::D* - let dynamic #redirecting_factory = "Missing" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/rasta/class_hierarchy.dart:12:17: Error: Redirection constructor target not found: 'Missing' + factory D() = Missing; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.transformed.expect index 3915deb2d3e..4ca626f1211 100644 --- a/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/rasta/class_hierarchy.dart.weak.transformed.expect @@ -77,7 +77,9 @@ class C extends core::Object /*hasConstConstructor*/ { class D extends core::Object { static final field dynamic _redirecting# = [self::D::•]; static factory •() → self::D* - let core::String* #redirecting_factory = "Missing" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/rasta/class_hierarchy.dart:12:17: Error: Redirection constructor target not found: 'Missing' + factory D() = Missing; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -93,7 +95,7 @@ static method main() → void { new self::A::•(); new self::B::•(); new self::C::•(); - invalid-expression "pkg/front_end/testcases/rasta/class_hierarchy.dart:19:7: Error: Method not found: 'Missing'. - new D(); - ^"; + invalid-expression "pkg/front_end/testcases/rasta/class_hierarchy.dart:12:17: Error: Redirection constructor target not found: 'Missing' + factory D() = Missing; + ^"; } diff --git a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.expect b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.expect index e0f9879d0ab..900f8a7ad22 100644 --- a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.expect +++ b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.expect @@ -78,11 +78,18 @@ class A extends core::Object { : super core::Object::•() ; static factory a() → self::A* - let dynamic #redirecting_factory = self::B::a in let self::A::a::T* #typeArg0 = null in invalid-expression; + return self::B::a(); static factory b() → self::A* - let dynamic #redirecting_factory = self::B::a in let self::C1* #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B Function()' isn't a subtype of 'A Function()'. + - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + factory A.b() = B.a; + ^"; static factory c() → self::A* - let dynamic #redirecting_factory = "Missing" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:16:19: Error: Redirection constructor target not found: 'Missing' + factory A.c() = Missing; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -100,9 +107,14 @@ class B extends self::A { : super self::A::internal() ; static factory a() → self::B* - let dynamic #redirecting_factory = self::C::• in let self::B::a::S* #typeArg0 = null in invalid-expression; + return new self::C::•(); static factory b() → self::B* - let dynamic #redirecting_factory = self::C::• in let self::C2* #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C Function()' isn't a subtype of 'B Function()'. + - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + factory B.b() = C; + ^"; } class C extends self::B { constructor •() → self::C* @@ -111,10 +123,20 @@ class C extends self::B { } static method main() → dynamic { new self::C::•(); - new self::C::•(); + invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B Function()' isn't a subtype of 'A Function()'. + - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + factory A.b() = B.a; + ^"; new self::C::•(); - new self::C::•(); - invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:35:7: Error: Method not found: 'Missing'. - new A.c(); - ^"; + invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C Function()' isn't a subtype of 'B Function()'. + - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + factory B.b() = C; + ^"; + invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:16:19: Error: Redirection constructor target not found: 'Missing' + factory A.c() = Missing; + ^"; } diff --git a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.outline.expect index 7dad5eb5752..12ffeef1afb 100644 --- a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.outline.expect +++ b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.outline.expect @@ -74,11 +74,18 @@ class A extends core::Object { constructor internal() → self::A* ; static factory a() → self::A* - let dynamic #redirecting_factory = self::B::a in let self::A::a::T* #typeArg0 = null in invalid-expression; + return self::B::a(); static factory b() → self::A* - let dynamic #redirecting_factory = self::B::a in let self::C1* #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B Function()' isn't a subtype of 'A Function()'. + - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + factory A.b() = B.a; + ^"; static factory c() → self::A* - let dynamic #redirecting_factory = "Missing" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:16:19: Error: Redirection constructor target not found: 'Missing' + factory A.c() = Missing; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -95,9 +102,14 @@ class B extends self::A { constructor internal() → self::B* ; static factory a() → self::B* - let dynamic #redirecting_factory = self::C::• in let self::B::a::S* #typeArg0 = null in invalid-expression; + return new self::C::•(); static factory b() → self::B* - let dynamic #redirecting_factory = self::C::• in let self::C2* #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C Function()' isn't a subtype of 'B Function()'. + - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + factory B.b() = C; + ^"; } class C extends self::B { constructor •() → self::C* diff --git a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.transformed.expect index 93c8bd025b6..900f8a7ad22 100644 --- a/pkg/front_end/testcases/rasta/generic_factory.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/rasta/generic_factory.dart.weak.transformed.expect @@ -78,11 +78,18 @@ class A extends core::Object { : super core::Object::•() ; static factory a() → self::A* - let () →* self::B* #redirecting_factory = self::B::a in let self::A::a::T* #typeArg0 = null in invalid-expression; + return self::B::a(); static factory b() → self::A* - let () →* self::B* #redirecting_factory = self::B::a in let self::C1* #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B Function()' isn't a subtype of 'A Function()'. + - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + factory A.b() = B.a; + ^"; static factory c() → self::A* - let core::String* #redirecting_factory = "Missing" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:16:19: Error: Redirection constructor target not found: 'Missing' + factory A.c() = Missing; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -100,9 +107,14 @@ class B extends self::A { : super self::A::internal() ; static factory a() → self::B* - let Never #redirecting_factory = self::C::• in let self::B::a::S* #typeArg0 = null in invalid-expression; + return new self::C::•(); static factory b() → self::B* - let Never #redirecting_factory = self::C::• in let self::C2* #typeArg0 = null in invalid-expression; + return invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C Function()' isn't a subtype of 'B Function()'. + - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + factory B.b() = C; + ^"; } class C extends self::B { constructor •() → self::C* @@ -111,10 +123,20 @@ class C extends self::B { } static method main() → dynamic { new self::C::•(); - new self::C::•(); + invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:15:19: Error: The constructor function type 'B Function()' isn't a subtype of 'A Function()'. + - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'C1' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'A' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + factory A.b() = B.a; + ^"; new self::C::•(); - new self::C::•(); - invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:35:7: Error: Method not found: 'Missing'. - new A.c(); - ^"; + invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:23:19: Error: The constructor function type 'C Function()' isn't a subtype of 'B Function()'. + - 'C' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'C2' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + - 'B' is from 'pkg/front_end/testcases/rasta/generic_factory.dart'. + factory B.b() = C; + ^"; + invalid-expression "pkg/front_end/testcases/rasta/generic_factory.dart:16:19: Error: Redirection constructor target not found: 'Missing' + factory A.c() = Missing; + ^"; } diff --git a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.expect index 3d0aa6b9b53..1ba20e79663 100644 --- a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.expect +++ b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.expect @@ -74,7 +74,7 @@ Try removing the return type. C.missingFactoryKeyword() = C.constant; ^"; static factory good() → self::C* - let dynamic #redirecting_factory = self::C::constant in invalid-expression; + return new self::C::constant(); method notEvenAConstructor(dynamic a) → self::C* return invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:21:30: Error: The getter 'h' isn't defined for the class 'C'. - 'C' is from 'pkg/front_end/testcases/rasta/issue_000044.dart'. diff --git a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.outline.expect index f560daf923d..49eadbcb48f 100644 --- a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.outline.expect @@ -36,7 +36,7 @@ class C extends core::Object /*hasConstConstructor*/ { constructor missingFactoryKeyword() → self::C* ; static factory good() → self::C* - let dynamic #redirecting_factory = self::C::constant in invalid-expression; + return new self::C::constant(); method notEvenAConstructor(dynamic a) → self::C* ; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode diff --git a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.transformed.expect index 0a767f02a70..b3609c5e238 100644 --- a/pkg/front_end/testcases/rasta/issue_000044.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/rasta/issue_000044.dart.weak.transformed.expect @@ -74,7 +74,7 @@ Try removing the return type. C.missingFactoryKeyword() = C.constant; ^"; static factory good() → self::C* - let Never #redirecting_factory = self::C::constant in invalid-expression; + return new self::C::constant(); method notEvenAConstructor(dynamic a) → self::C* return invalid-expression "pkg/front_end/testcases/rasta/issue_000044.dart:21:30: Error: The getter 'h' isn't defined for the class 'C'. - 'C' is from 'pkg/front_end/testcases/rasta/issue_000044.dart'. diff --git a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000067.dart.weak.expect index 033c0fd0e6a..3f594b79892 100644 --- a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.expect +++ b/pkg/front_end/testcases/rasta/issue_000067.dart.weak.expect @@ -10,7 +10,7 @@ class A extends core::Object { constructor •() → self::A* : super core::Object::•() {} static factory foo() → self::A* - let dynamic #redirecting_factory = self::C::bar in invalid-expression; + return self::C::bar(); method m() → core::int* {} abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf @@ -28,7 +28,7 @@ class C extends self::A { constructor •() → self::C* : super self::A::•() {} static factory bar() → self::C* - let dynamic #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(); method m() → core::int* { return 1; } diff --git a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000067.dart.weak.outline.expect index 7f346822c45..b498bf40f0d 100644 --- a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000067.dart.weak.outline.expect @@ -9,7 +9,7 @@ class A extends core::Object { constructor •() → self::A* ; static factory foo() → self::A* - let dynamic #redirecting_factory = self::C::bar in invalid-expression; + return self::C::bar(); method m() → core::int* ; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode @@ -28,7 +28,7 @@ class C extends self::A { constructor •() → self::C* ; static factory bar() → self::C* - let dynamic #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(); method m() → core::int* ; } diff --git a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000067.dart.weak.transformed.expect index d34604a5d2d..3f594b79892 100644 --- a/pkg/front_end/testcases/rasta/issue_000067.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/rasta/issue_000067.dart.weak.transformed.expect @@ -10,7 +10,7 @@ class A extends core::Object { constructor •() → self::A* : super core::Object::•() {} static factory foo() → self::A* - let () →* self::C* #redirecting_factory = self::C::bar in invalid-expression; + return self::C::bar(); method m() → core::int* {} abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf @@ -28,7 +28,7 @@ class C extends self::A { constructor •() → self::C* : super self::A::•() {} static factory bar() → self::C* - let Never #redirecting_factory = self::D::• in invalid-expression; + return new self::D::•(); method m() → core::int* { return 1; } diff --git a/pkg/front_end/testcases/regress/issue_35259.dart.weak.expect b/pkg/front_end/testcases/regress/issue_35259.dart.weak.expect index c62b784020f..89937c27d34 100644 --- a/pkg/front_end/testcases/regress/issue_35259.dart.weak.expect +++ b/pkg/front_end/testcases/regress/issue_35259.dart.weak.expect @@ -35,7 +35,9 @@ import "dart:core" as core; class Supertype extends core::Object { static final field dynamic _redirecting# = [self::Supertype::•]; static factory •() → self::Supertype* - let dynamic #redirecting_factory = "Unresolved" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/regress/issue_35259.dart:6:25: Error: Redirection constructor target not found: 'Unresolved' + factory Supertype() = Unresolved; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/regress/issue_35259.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_35259.dart.weak.outline.expect index 3c59d2119a6..e164c58ddc7 100644 --- a/pkg/front_end/testcases/regress/issue_35259.dart.weak.outline.expect +++ b/pkg/front_end/testcases/regress/issue_35259.dart.weak.outline.expect @@ -31,7 +31,9 @@ import "dart:core" as core; class Supertype extends core::Object { static final field dynamic _redirecting# = [self::Supertype::•]; static factory •() → self::Supertype* - let dynamic #redirecting_factory = "Unresolved" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/regress/issue_35259.dart:6:25: Error: Redirection constructor target not found: 'Unresolved' + factory Supertype() = Unresolved; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/regress/issue_35259.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_35259.dart.weak.transformed.expect index a6ad0e66134..89937c27d34 100644 --- a/pkg/front_end/testcases/regress/issue_35259.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/regress/issue_35259.dart.weak.transformed.expect @@ -35,7 +35,9 @@ import "dart:core" as core; class Supertype extends core::Object { static final field dynamic _redirecting# = [self::Supertype::•]; static factory •() → self::Supertype* - let core::String* #redirecting_factory = "Unresolved" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/regress/issue_35259.dart:6:25: Error: Redirection constructor target not found: 'Unresolved' + factory Supertype() = Unresolved; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/regress/issue_35260.dart.weak.expect b/pkg/front_end/testcases/regress/issue_35260.dart.weak.expect index c2a8e0e8314..27e321ccaaf 100644 --- a/pkg/front_end/testcases/regress/issue_35260.dart.weak.expect +++ b/pkg/front_end/testcases/regress/issue_35260.dart.weak.expect @@ -19,7 +19,7 @@ import "dart:core" as core; class Supertype extends core::Object { static final field dynamic _redirecting# = [self::Supertype::•]; static factory •() → self::Supertype* - let dynamic #redirecting_factory = self::X::• in invalid-expression; + return new self::X::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/regress/issue_35260.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_35260.dart.weak.outline.expect index 474004ed9d8..5198fda4d24 100644 --- a/pkg/front_end/testcases/regress/issue_35260.dart.weak.outline.expect +++ b/pkg/front_end/testcases/regress/issue_35260.dart.weak.outline.expect @@ -15,7 +15,7 @@ import "dart:core" as core; class Supertype extends core::Object { static final field dynamic _redirecting# = [self::Supertype::•]; static factory •() → self::Supertype* - let dynamic #redirecting_factory = self::X::• in invalid-expression; + return new self::X::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/regress/issue_35260.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_35260.dart.weak.transformed.expect index e34149968e9..27e321ccaaf 100644 --- a/pkg/front_end/testcases/regress/issue_35260.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/regress/issue_35260.dart.weak.transformed.expect @@ -19,7 +19,7 @@ import "dart:core" as core; class Supertype extends core::Object { static final field dynamic _redirecting# = [self::Supertype::•]; static factory •() → self::Supertype* - let Never #redirecting_factory = self::X::• in invalid-expression; + return new self::X::•(); abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/regress/issue_35266.dart.weak.expect b/pkg/front_end/testcases/regress/issue_35266.dart.weak.expect index 698e95b1290..6e380a74e64 100644 --- a/pkg/front_end/testcases/regress/issue_35266.dart.weak.expect +++ b/pkg/front_end/testcases/regress/issue_35266.dart.weak.expect @@ -22,7 +22,7 @@ class B extends self::C { : super self::C::•() ; static factory foo() → self::B* - let dynamic #redirecting_factory = self::B::• in let self::B::foo::T* #typeArg0 = null in invalid-expression; + return new self::B::•(); } class C extends core::Object { static final field dynamic _redirecting# = [self::C::bar]; @@ -30,7 +30,9 @@ class C extends core::Object { : super core::Object::•() ; static factory bar() → self::C* - let dynamic #redirecting_factory = "B.foo" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:13:21: Error: Can't use 'B.foo' because it is declared more than once. + factory C.bar() = B.foo; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -43,7 +45,7 @@ class C extends core::Object { abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType } static method main() → dynamic { - invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:17:7: Error: Method not found: 'B.foo'. - new C.bar(); - ^"; + invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:13:21: Error: Can't use 'B.foo' because it is declared more than once. + factory C.bar() = B.foo; + ^"; } diff --git a/pkg/front_end/testcases/regress/issue_35266.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_35266.dart.weak.outline.expect index 7f776825941..b64319bbb8b 100644 --- a/pkg/front_end/testcases/regress/issue_35266.dart.weak.outline.expect +++ b/pkg/front_end/testcases/regress/issue_35266.dart.weak.outline.expect @@ -21,14 +21,16 @@ class B extends self::C { constructor •() → self::B* ; static factory foo() → self::B* - let dynamic #redirecting_factory = self::B::• in let self::B::foo::T* #typeArg0 = null in invalid-expression; + return new self::B::•(); } class C extends core::Object { static final field dynamic _redirecting# = [self::C::bar]; constructor •() → self::C* ; static factory bar() → self::C* - let dynamic #redirecting_factory = "B.foo" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:13:21: Error: Can't use 'B.foo' because it is declared more than once. + factory C.bar() = B.foo; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf diff --git a/pkg/front_end/testcases/regress/issue_35266.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_35266.dart.weak.transformed.expect index 68f6e8ae98d..6e380a74e64 100644 --- a/pkg/front_end/testcases/regress/issue_35266.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/regress/issue_35266.dart.weak.transformed.expect @@ -22,7 +22,7 @@ class B extends self::C { : super self::C::•() ; static factory foo() → self::B* - let Never #redirecting_factory = self::B::• in let self::B::foo::T* #typeArg0 = null in invalid-expression; + return new self::B::•(); } class C extends core::Object { static final field dynamic _redirecting# = [self::C::bar]; @@ -30,7 +30,9 @@ class C extends core::Object { : super core::Object::•() ; static factory bar() → self::C* - let core::String* #redirecting_factory = "B.foo" in invalid-expression; + return invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:13:21: Error: Can't use 'B.foo' because it is declared more than once. + factory C.bar() = B.foo; + ^"; abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf @@ -43,7 +45,7 @@ class C extends core::Object { abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType } static method main() → dynamic { - invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:17:7: Error: Method not found: 'B.foo'. - new C.bar(); - ^"; + invalid-expression "pkg/front_end/testcases/regress/issue_35266.dart:13:21: Error: Can't use 'B.foo' because it is declared more than once. + factory C.bar() = B.foo; + ^"; } diff --git a/pkg/front_end/testcases/text_serialization.status b/pkg/front_end/testcases/text_serialization.status index a74ac1b4b37..4f9feaab6e9 100644 --- a/pkg/front_end/testcases/text_serialization.status +++ b/pkg/front_end/testcases/text_serialization.status @@ -99,6 +99,7 @@ general/override_check_after_inference: TypeCheckError # Issue #31620 general/override_check_basic: TypeCheckError # Issue #31620 general/override_check_with_covariant_modifier: TypeCheckError # Issue #31620 general/override_setter_with_field: TypeCheckError +general/redirecting_factory: RuntimeError general/redirecting_factory_invocation_in_invalid: TypeCheckError general/spread_collection: RuntimeError # Should be fixed as part of implementing spread collection support general/type_parameter_type_named_int: RuntimeError diff --git a/pkg/front_end/testcases/weak.status b/pkg/front_end/testcases/weak.status index d6c353bcb1d..264d1d2dfdb 100644 --- a/pkg/front_end/testcases/weak.status +++ b/pkg/front_end/testcases/weak.status @@ -105,6 +105,7 @@ general/override_check_after_inference: TypeCheckError # Issue #31620 general/override_check_basic: TypeCheckError # Issue #31620 general/override_check_with_covariant_modifier: TypeCheckError # Issue #31620 general/override_setter_with_field: TypeCheckError +general/redirecting_factory: RuntimeError general/redirecting_factory_invocation_in_invalid: TypeCheckError general/spread_collection: RuntimeError general/type_parameter_type_named_int: RuntimeError # Expected diff --git a/pkg/kernel/lib/type_checker.dart b/pkg/kernel/lib/type_checker.dart index 53ff2cd0844..401b4ef59d9 100644 --- a/pkg/kernel/lib/type_checker.dart +++ b/pkg/kernel/lib/type_checker.dart @@ -479,7 +479,7 @@ class TypeCheckingVisitor @override DartType visitInvalidExpression(InvalidExpression node) { // Don't type check `node.expression`. - return const InvalidType(); + return const NeverType.nonNullable(); } @override diff --git a/pkg/vm/lib/transformations/lowering.dart b/pkg/vm/lib/transformations/lowering.dart index d776f339028..f9e8fe3569a 100644 --- a/pkg/vm/lib/transformations/lowering.dart +++ b/pkg/vm/lib/transformations/lowering.dart @@ -51,6 +51,12 @@ class _Lowering extends Transformer { @override defaultMember(Member node) { + if (node is Procedure && node.isRedirectingFactory) { + // Keep bodies of redirecting factories unchanged because + // front-end expects them to have a certain shape. + return node; + } + _currentMember = node; _cachedStaticTypeContext = null; diff --git a/tests/language/constructor/default_factory2_test.dart b/tests/language/constructor/default_factory2_test.dart index a8b56b8d0be..3de811137e1 100644 --- a/tests/language/constructor/default_factory2_test.dart +++ b/tests/language/constructor/default_factory2_test.dart @@ -22,6 +22,4 @@ class A implements IA { main() { var result = new IA(); - // ^ - // [cfe] Type argument 'String' doesn't conform to the bound 'Foo' of the type variable 'T' on 'A'. } diff --git a/tests/language/factory/factory_test.dart b/tests/language/factory/factory_test.dart index 7b0c2a8e094..56987b9968f 100644 --- a/tests/language/factory/factory_test.dart +++ b/tests/language/factory/factory_test.dart @@ -54,10 +54,7 @@ class LinkFactory { LinkFactory._(); } - main() { FactoryTest.testMain(); var a = new Link.create(); - // ^ - // [cfe] Expected 0 type arguments. } diff --git a/tests/language/factory/redirection3_cyclic_test.dart b/tests/language/factory/redirection3_cyclic_test.dart index ab115ccb2b1..289d71b7f47 100644 --- a/tests/language/factory/redirection3_cyclic_test.dart +++ b/tests/language/factory/redirection3_cyclic_test.dart @@ -6,8 +6,6 @@ class A { factory A.foo() = B; - // ^ - // [cfe] Cyclic definition of factory 'A.foo'. } class B implements A { @@ -16,9 +14,13 @@ class B implements A { class C implements B { factory C.bar() = C.foo; + // ^ + // [cfe] Cyclic definition of factory 'C.bar'. // ^^^^^ // [analyzer] COMPILE_TIME_ERROR.RECURSIVE_CONSTRUCTOR_REDIRECT factory C.foo() = C.bar(); + // ^ + // [cfe] Cyclic definition of factory 'C.foo'. // ^^^^^ // [analyzer] COMPILE_TIME_ERROR.RECURSIVE_CONSTRUCTOR_REDIRECT // ^^^ diff --git a/tests/language/interface/interface_test.dart b/tests/language/interface/interface_test.dart index b05e0a6ba9c..1a825cb5089 100644 --- a/tests/language/interface/interface_test.dart +++ b/tests/language/interface/interface_test.dart @@ -9,7 +9,7 @@ abstract class Ai { abstract class Bi implements Ai { factory Bi() = InterfaceTest; - // ^ + // ^ // [cfe] Factory redirects to class 'InterfaceTest', which is abstract and can't be instantiated. // ^^^^^^^^^^^^^ // [analyzer] COMPILE_TIME_ERROR.REDIRECT_TO_ABSTRACT_CLASS_CONSTRUCTOR diff --git a/tests/language/redirecting/factory_malbounded_test.dart b/tests/language/redirecting/factory_malbounded_test.dart index 29dd27875eb..e930ff75f66 100644 --- a/tests/language/redirecting/factory_malbounded_test.dart +++ b/tests/language/redirecting/factory_malbounded_test.dart @@ -11,10 +11,7 @@ class Foo { Foo.create() {} } -class Bar< - T - extends num - > extends Foo { +class Bar extends Foo { factory Bar() { return new Bar.create(); } @@ -24,6 +21,4 @@ class Bar< main() { new Foo(); - // ^ - // [cfe] Type argument 'String' doesn't conform to the bound 'num' of the type variable 'T' on 'Bar'. } diff --git a/tests/language/regress/regress23038_test.dart b/tests/language/regress/regress23038_test.dart index 09670982162..15e6699764c 100644 --- a/tests/language/regress/regress23038_test.dart +++ b/tests/language/regress/regress23038_test.dart @@ -11,7 +11,6 @@ class C { = C> //^^^^^^^ // [analyzer] COMPILE_TIME_ERROR.RECURSIVE_CONSTRUCTOR_REDIRECT - // [cfe] The constructor function type 'C> Function()' isn't a subtype of 'C Function()'. ; } diff --git a/tests/language_2/constructor/default_factory2_test.dart b/tests/language_2/constructor/default_factory2_test.dart index 905b695a7c8..cb3de6fc9a9 100644 --- a/tests/language_2/constructor/default_factory2_test.dart +++ b/tests/language_2/constructor/default_factory2_test.dart @@ -22,6 +22,4 @@ class A implements IA { main() { var result = new IA(); - // ^ - // [cfe] Type argument 'String' doesn't conform to the bound 'Foo' of the type variable 'T' on 'A'. } diff --git a/tests/language_2/factory/factory_test.dart b/tests/language_2/factory/factory_test.dart index 423d3900213..81f556a75d0 100644 --- a/tests/language_2/factory/factory_test.dart +++ b/tests/language_2/factory/factory_test.dart @@ -54,10 +54,7 @@ class LinkFactory { } } - main() { FactoryTest.testMain(); var a = new Link.create(); - // ^ - // [cfe] Expected 0 type arguments. } diff --git a/tests/language_2/factory/redirection3_cyclic_test.dart b/tests/language_2/factory/redirection3_cyclic_test.dart index 5b37ba0b3a1..2f3659406eb 100644 --- a/tests/language_2/factory/redirection3_cyclic_test.dart +++ b/tests/language_2/factory/redirection3_cyclic_test.dart @@ -8,8 +8,6 @@ class A { factory A.foo() = B; - // ^ - // [cfe] Cyclic definition of factory 'A.foo'. } class B implements A { @@ -18,9 +16,13 @@ class B implements A { class C implements B { factory C.bar() = C.foo; + // ^ + // [cfe] Cyclic definition of factory 'C.bar'. // ^^^^^ // [analyzer] COMPILE_TIME_ERROR.RECURSIVE_CONSTRUCTOR_REDIRECT factory C.foo() = C.bar(); + // ^ + // [cfe] Cyclic definition of factory 'C.foo'. // ^^^^^ // [analyzer] COMPILE_TIME_ERROR.RECURSIVE_CONSTRUCTOR_REDIRECT // ^^^ diff --git a/tests/language_2/interface/interface_test.dart b/tests/language_2/interface/interface_test.dart index 9bc7abd7ebb..61033fe3629 100644 --- a/tests/language_2/interface/interface_test.dart +++ b/tests/language_2/interface/interface_test.dart @@ -11,7 +11,7 @@ abstract class Ai { abstract class Bi implements Ai { factory Bi() = InterfaceTest; - // ^ + // ^ // [cfe] Factory redirects to class 'InterfaceTest', which is abstract and can't be instantiated. // ^^^^^^^^^^^^^ // [analyzer] COMPILE_TIME_ERROR.REDIRECT_TO_ABSTRACT_CLASS_CONSTRUCTOR diff --git a/tests/language_2/redirecting/factory_malbounded_test.dart b/tests/language_2/redirecting/factory_malbounded_test.dart index d22972f75f0..24225b76b57 100644 --- a/tests/language_2/redirecting/factory_malbounded_test.dart +++ b/tests/language_2/redirecting/factory_malbounded_test.dart @@ -13,10 +13,7 @@ class Foo { Foo.create() {} } -class Bar< - T - extends num - > extends Foo { +class Bar extends Foo { factory Bar() { return new Bar.create(); } @@ -26,6 +23,4 @@ class Bar< main() { new Foo(); - // ^ - // [cfe] Type argument 'String' doesn't conform to the bound 'num' of the type variable 'T' on 'Bar'. } diff --git a/tests/language_2/regress/regress23038_test.dart b/tests/language_2/regress/regress23038_test.dart index 0b861e11da7..605f629f9bf 100644 --- a/tests/language_2/regress/regress23038_test.dart +++ b/tests/language_2/regress/regress23038_test.dart @@ -13,7 +13,6 @@ class C { = C> //^^^^^^^ // [analyzer] COMPILE_TIME_ERROR.RECURSIVE_CONSTRUCTOR_REDIRECT - // [cfe] The constructor function type 'C> Function()' isn't a subtype of 'C Function()'. ; }