[cfe] Handle patch factories through fragments
Change-Id: I11a5b2e113d854ae159a823359ddbdd8e796f6db
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/415281
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
diff --git a/pkg/front_end/lib/src/builder/builder.dart b/pkg/front_end/lib/src/builder/builder.dart
index e6ceab3..8f48ba3 100644
--- a/pkg/front_end/lib/src/builder/builder.dart
+++ b/pkg/front_end/lib/src/builder/builder.dart
@@ -277,7 +277,6 @@
bool get isConst => false;
@override
- // Coverage-ignore(suite): Not run.
bool get isConstructor => false;
@override
@@ -324,7 +323,7 @@
bool get isLocal => false;
@override
- bool get isAugmenting => this != origin;
+ bool get isAugmenting => false;
@override
bool get isAugment => false;
diff --git a/pkg/front_end/lib/src/fragment/factory.dart b/pkg/front_end/lib/src/fragment/factory.dart
index ad89d0e..e0c9642 100644
--- a/pkg/front_end/lib/src/fragment/factory.dart
+++ b/pkg/front_end/lib/src/fragment/factory.dart
@@ -30,6 +30,8 @@
SourceFactoryBuilder? _builder;
+ FactoryDeclaration? _declaration;
+
FactoryFragment({
required this.constructorName,
required this.fileUri,
@@ -65,6 +67,18 @@
_builder = value;
}
+ FactoryDeclaration get declaration {
+ assert(
+ _declaration != null, "Declaration has not been computed for $this.");
+ return _declaration!;
+ }
+
+ void set declaration(FactoryDeclaration value) {
+ assert(_declaration == null,
+ "Declaration has already been computed for $this.");
+ _declaration = value;
+ }
+
@override
FunctionBodyBuildingContext createFunctionBodyBuildingContext() {
return new _FactoryBodyBuildingContext(this);
@@ -108,7 +122,7 @@
@override
BodyBuilderContext createBodyBuilderContext() {
- return _fragment.builder.createBodyBuilderContext();
+ return _fragment.declaration.createBodyBuilderContext(_fragment.builder);
}
@override
@@ -119,9 +133,8 @@
?.inferenceData;
@override
- List<TypeParameter>? get thisTypeParameters =>
- _fragment.builder.thisTypeParameters;
+ List<TypeParameter>? get thisTypeParameters => null;
@override
- VariableDeclaration? get thisVariable => _fragment.builder.thisVariable;
+ VariableDeclaration? get thisVariable => null;
}
diff --git a/pkg/front_end/lib/src/source/constructor_declaration.dart b/pkg/front_end/lib/src/source/constructor_declaration.dart
index 47f64e1..6e69c22 100644
--- a/pkg/front_end/lib/src/source/constructor_declaration.dart
+++ b/pkg/front_end/lib/src/source/constructor_declaration.dart
@@ -6,13 +6,15 @@
import '../kernel/expression_generator_helper.dart';
import '../type_inference/inference_results.dart';
-import 'source_function_builder.dart';
+import 'source_member_builder.dart';
import 'source_property_builder.dart';
/// Common interface for builders for generative constructor declarations in
/// source code, such as a generative constructor in a regular class or a
/// generative constructor in an extension type declaration.
-abstract class ConstructorDeclarationBuilder implements SourceFunctionBuilder {
+abstract class ConstructorDeclarationBuilder implements SourceMemberBuilder {
+ FunctionNode get function;
+
/// Returns `true` if this constructor, including its augmentations, is
/// external.
///
diff --git a/pkg/front_end/lib/src/source/source_class_builder.dart b/pkg/front_end/lib/src/source/source_class_builder.dart
index 6a2aacd..4e78960 100644
--- a/pkg/front_end/lib/src/source/source_class_builder.dart
+++ b/pkg/front_end/lib/src/source/source_class_builder.dart
@@ -908,8 +908,7 @@
// Report an error if a mixin class has a constructor with parameters,
// is external, or is a redirecting constructor.
if (constructor.isRedirecting ||
- (constructor.formals != null &&
- constructor.formals!.isNotEmpty) ||
+ constructor.hasParameters ||
constructor.isExternal) {
addProblem(
templateIllegalMixinDueToConstructors
diff --git a/pkg/front_end/lib/src/source/source_constructor_builder.dart b/pkg/front_end/lib/src/source/source_constructor_builder.dart
index 435a1be..854635e 100644
--- a/pkg/front_end/lib/src/source/source_constructor_builder.dart
+++ b/pkg/front_end/lib/src/source/source_constructor_builder.dart
@@ -39,7 +39,6 @@
import 'constructor_declaration.dart';
import 'name_scheme.dart';
import 'source_class_builder.dart';
-import 'source_function_builder.dart';
import 'source_library_builder.dart' show SourceLibraryBuilder;
import 'source_loader.dart' show SourceLoader;
import 'source_member_builder.dart';
@@ -76,7 +75,7 @@
class SourceConstructorBuilderImpl extends SourceMemberBuilderImpl
implements
SourceConstructorBuilder,
- SourceFunctionBuilder,
+ SourceMemberBuilder,
Inferable,
ConstructorDeclarationBuilder {
final Modifiers modifiers;
@@ -169,13 +168,14 @@
@override
Builder get parent => declarationBuilder;
- @override
+ bool get hasParameters => _introductory.formals != null;
+
// Coverage-ignore(suite): Not run.
- List<NominalParameterBuilder>? get typeParameters =>
+ List<NominalParameterBuilder>? get typeParametersForTesting =>
_introductory.typeParameters;
- @override
- List<FormalParameterBuilder>? get formals => _introductory.formals;
+ // Coverage-ignore(suite): Not run.
+ List<FormalParameterBuilder>? get formalsForTesting => _introductory.formals;
@override
// Coverage-ignore(suite): Not run.
@@ -210,21 +210,13 @@
Name get memberName => _memberName.name;
@override
+ // Coverage-ignore(suite): Not run.
SourceConstructorBuilderImpl get origin => this;
@override
bool get isRedirecting => _lastDeclaration.isRedirecting;
@override
- // Coverage-ignore(suite): Not run.
- VariableDeclaration? get thisVariable => _introductory.thisVariable;
-
- @override
- // Coverage-ignore(suite): Not run.
- List<TypeParameter>? get thisTypeParameters =>
- _introductory.thisTypeParameters;
-
- @override
Member get readTarget => _readTarget;
@override
@@ -262,7 +254,6 @@
@override
FunctionNode get function => _lastDeclaration.function;
- @override
void becomeNative(SourceLoader loader) {
_introductory.becomeNative();
for (ConstructorDeclaration augmentation in _augmentations) {
@@ -284,7 +275,6 @@
final String? nativeMethodName;
- @override
// Coverage-ignore(suite): Not run.
bool get isNative => nativeMethodName != null;
diff --git a/pkg/front_end/lib/src/source/source_factory_builder.dart b/pkg/front_end/lib/src/source/source_factory_builder.dart
index 7e4e120..3eed714 100644
--- a/pkg/front_end/lib/src/source/source_factory_builder.dart
+++ b/pkg/front_end/lib/src/source/source_factory_builder.dart
@@ -46,7 +46,7 @@
import 'source_member_builder.dart';
class SourceFactoryBuilder extends SourceMemberBuilderImpl
- implements SourceFunctionBuilder {
+ implements FunctionBuilder {
final Modifiers modifiers;
@override
@@ -61,10 +61,6 @@
@override
final bool isExtensionInstanceMember = false;
- SourceFactoryBuilder? _actualOrigin;
-
- List<SourceFactoryBuilder>? _augmentations;
-
final MemberName _memberName;
@override
@@ -75,6 +71,12 @@
final FactoryDeclaration _introductory;
+ final List<FactoryDeclaration> _augmentations;
+
+ late final FactoryDeclaration _lastDeclaration;
+
+ late final List<FactoryDeclaration> _augmentedDeclarations;
+
SourceFactoryBuilder(
{required this.modifiers,
required this.name,
@@ -85,10 +87,23 @@
required Reference? procedureReference,
required Reference? tearOffReference,
required NameScheme nameScheme,
- required FactoryDeclaration introductory})
+ required FactoryDeclaration introductory,
+ required List<FactoryDeclaration> augmentations})
: _memberName = nameScheme.getDeclaredName(name),
- _introductory = introductory {
- _introductory.createNode(
+ _introductory = introductory,
+ _augmentations = augmentations {
+ _augmentedDeclarations = [introductory, ...augmentations];
+ _lastDeclaration = _augmentedDeclarations.removeLast();
+
+ for (FactoryDeclaration augmentedDeclaration in _augmentedDeclarations) {
+ augmentedDeclaration.createNode(
+ name: name,
+ libraryBuilder: libraryBuilder,
+ nameScheme: nameScheme,
+ procedureReference: null,
+ tearOffReference: null);
+ }
+ _lastDeclaration.createNode(
name: name,
libraryBuilder: libraryBuilder,
nameScheme: nameScheme,
@@ -96,29 +111,26 @@
tearOffReference: tearOffReference);
}
- @override
// Coverage-ignore(suite): Not run.
- List<NominalParameterBuilder>? get typeParameters =>
+ List<NominalParameterBuilder>? get typeParametersForTesting =>
_introductory.typeParameters;
- TypeBuilder get returnType => _introductory.returnType;
-
- @override
// Coverage-ignore(suite): Not run.
- List<FormalParameterBuilder>? get formals => _introductory.formals;
+ List<FormalParameterBuilder>? get formalsForTesting => _introductory.formals;
@override
// Coverage-ignore(suite): Not run.
Iterable<MetadataBuilder>? get metadataForTesting => _introductory.metadata;
ConstructorReferenceBuilder? get redirectionTarget =>
- _introductory.redirectionTarget;
+ _lastDeclaration.redirectionTarget;
@override
// Coverage-ignore(suite): Not run.
bool get isAugmentation => modifiers.isAugment;
@override
+ // Coverage-ignore(suite): Not run.
bool get isExternal => modifiers.isExternal;
@override
@@ -141,34 +153,12 @@
// Coverage-ignore(suite): Not run.
bool get isAssignable => false;
- FormalParameterBuilder? getFormal(Identifier identifier) =>
- _introductory.getFormal(identifier);
-
- void setBody(Statement value) {
- _introductory.setBody(value);
- }
-
- @override
- // Coverage-ignore(suite): Not run.
- bool get isNative => _introductory.isNative;
-
- /// Returns the [index]th parameter of this function.
- ///
- /// The index is the syntactical index, including both positional and named
- /// parameter in the order they are declared, and excluding the synthesized
- /// this parameter on extension instance members.
- VariableDeclaration getFormalParameter(int index) =>
- _introductory.getFormalParameter(index);
-
- @override
- VariableDeclaration? get thisVariable => null;
-
- @override
- List<TypeParameter>? get thisTypeParameters => null;
-
- @override
void becomeNative(SourceLoader loader) {
_introductory.becomeNative(loader: loader, annotatables: annotatables);
+ for (FactoryDeclaration augmentation in _augmentations) {
+ // Coverage-ignore-block(suite): Not run.
+ augmentation.becomeNative(loader: loader, annotatables: annotatables);
+ }
}
@override
@@ -178,15 +168,9 @@
// Coverage-ignore(suite): Not run.
Name get memberName => _memberName.name;
- // Coverage-ignore(suite): Not run.
- List<SourceFactoryBuilder>? get augmentationsForTesting => _augmentations;
-
- void _setAsyncModifier(AsyncMarker newModifier) {
- _introductory.asyncModifier = newModifier;
- }
-
@override
- SourceFactoryBuilder get origin => _actualOrigin ?? this;
+ // Coverage-ignore(suite): Not run.
+ SourceFactoryBuilder get origin => this;
@override
// Coverage-ignore(suite): Not run.
@@ -221,14 +205,12 @@
// Coverage-ignore(suite): Not run.
bool get isEnumElement => false;
- Procedure get _procedure =>
- isAugmenting ? origin._procedure : _introductory.procedure;
+ Procedure get _procedure => _lastDeclaration.procedure;
- Procedure? get _tearOff =>
- isAugmenting ? origin._tearOff : _introductory.tearOff;
+ Procedure? get _tearOff => _lastDeclaration.tearOff;
@override
- FunctionNode get function => _introductory.function;
+ FunctionNode get function => _lastDeclaration.function;
@override
Member get readTarget => _tearOff ?? _procedure;
@@ -256,6 +238,7 @@
// Coverage-ignore(suite): Not run.
Iterable<Reference> get exportedMemberReferences => [_procedure.reference];
+ // Coverage-ignore(suite): Not run.
/// If this is an extension instance method or constructor with lowering
/// enabled, the tear off parameter corresponding to the [index]th parameter
/// on the instance method or constructor is returned.
@@ -276,47 +259,8 @@
throw new UnsupportedError('${runtimeType}.localSetters');
@override
- void addAugmentation(Builder augmentation) {
- _addAugmentation(augmentation);
- }
-
- void _addAugmentation(Builder augmentation) {
- if (augmentation is SourceFactoryBuilder) {
- if (checkAugmentation(
- augmentationLibraryBuilder: augmentation.libraryBuilder,
- origin: this,
- augmentation: augmentation)) {
- augmentation._actualOrigin = this;
- (_augmentations ??= []).add(augmentation);
- }
- } else {
- // Coverage-ignore-block(suite): Not run.
- reportAugmentationMismatch(
- originLibraryBuilder: libraryBuilder,
- origin: this,
- augmentation: augmentation);
- }
- }
-
- @override
- // Coverage-ignore(suite): Not run.
- void applyAugmentation(Builder augmentation) {
- _addAugmentation(augmentation);
- }
-
- @override
int buildBodyNodes(BuildNodesCallback f) {
- int count = 0;
- List<SourceFactoryBuilder>? augmentations = _augmentations;
- if (augmentations != null) {
- for (SourceFactoryBuilder augmentation in augmentations) {
- count += augmentation.buildBodyNodes(f);
- }
- }
- if (isAugmenting) {
- _finishAugmentation();
- }
- return count;
+ return 0;
}
@override
@@ -324,12 +268,9 @@
{required bool inErrorRecovery}) {
int count = _introductory.computeDefaultTypes(context,
inErrorRecovery: inErrorRecovery);
- List<SourceFactoryBuilder>? augmentations = _augmentations;
- if (augmentations != null) {
- for (SourceFactoryBuilder augmentation in augmentations) {
- count += augmentation.computeDefaultTypes(context,
- inErrorRecovery: inErrorRecovery);
- }
+ for (FactoryDeclaration augmentation in _augmentations) {
+ count += augmentation.computeDefaultTypes(context,
+ inErrorRecovery: inErrorRecovery);
}
return count;
}
@@ -343,11 +284,8 @@
void checkTypes(SourceLibraryBuilder library, NameSpace nameSpace,
TypeEnvironment typeEnvironment) {
_introductory.checkTypes(library, nameSpace, typeEnvironment);
- List<SourceFactoryBuilder>? augmentations = _augmentations;
- if (augmentations != null) {
- for (SourceFactoryBuilder augmentation in augmentations) {
- augmentation.checkTypes(library, nameSpace, typeEnvironment);
- }
+ for (FactoryDeclaration augmentation in _augmentations) {
+ augmentation.checkTypes(library, nameSpace, typeEnvironment);
}
}
@@ -365,12 +303,12 @@
factoryBuilder: this,
typeEnvironment: typeEnvironment);
}
- List<SourceFactoryBuilder>? augmentations = _augmentations;
- if (augmentations != null) {
- for (SourceFactoryBuilder augmentation in augmentations) {
- if (augmentation.redirectionTarget != null) {
- augmentation.checkRedirectingFactories(typeEnvironment);
- }
+ for (FactoryDeclaration augmentation in _augmentations) {
+ if (augmentation.redirectionTarget != null) {
+ augmentation.checkRedirectingFactory(
+ libraryBuilder: libraryBuilder,
+ factoryBuilder: this,
+ typeEnvironment: typeEnvironment);
}
}
}
@@ -386,40 +324,20 @@
@override
Iterable<Annotatable> get annotatables => [_procedure];
- /// Returns `true` if this member is augmented, either by being the origin
- /// of a augmented member or by not being the last among augmentations.
- bool get isAugmented {
- if (isAugmenting) {
- return origin._augmentations!.last != this;
- } else {
- return _augmentations != null;
- }
- }
-
- // Coverage-ignore(suite): Not run.
- List<DartType>? get _redirectionTypeArguments =>
- _introductory.redirectionTypeArguments;
-
- // Coverage-ignore(suite): Not run.
- void set _redirectionTypeArguments(List<DartType>? value) {
- _introductory.redirectionTypeArguments = value;
- }
-
@override
void buildOutlineNodes(BuildNodesCallback f) {
- _introductory.buildOutlineNodes(
- libraryBuilder: libraryBuilder, factoryBuilder: this, f: f);
- List<SourceFactoryBuilder>? augmentations = _augmentations;
- if (augmentations != null) {
- for (SourceFactoryBuilder augmentation in augmentations) {
- augmentation.buildOutlineNodes((
- {required Member member,
- Member? tearOff,
- required BuiltMemberKind kind}) {
- // Don't add augmentations.
- });
- }
+ for (FactoryDeclaration augmentedDeclaration in _augmentedDeclarations) {
+ augmentedDeclaration.buildOutlineNodes(
+ libraryBuilder: libraryBuilder,
+ factoryBuilder: this,
+ isConst: isConst,
+ f: noAddBuildNodesCallback);
}
+ _lastDeclaration.buildOutlineNodes(
+ libraryBuilder: libraryBuilder,
+ factoryBuilder: this,
+ f: f,
+ isConst: isConst);
}
bool _hasInferredRedirectionTarget = false;
@@ -428,14 +346,18 @@
List<DelayedDefaultValueCloner> delayedDefaultValueCloners) {
if (_hasInferredRedirectionTarget) return;
_hasInferredRedirectionTarget = true;
- if (isAugmenting) {
- origin.inferRedirectionTarget(classHierarchy, delayedDefaultValueCloners);
- }
_introductory.inferRedirectionTarget(
libraryBuilder: libraryBuilder,
factoryBuilder: this,
classHierarchy: classHierarchy,
delayedDefaultValueCloners: delayedDefaultValueCloners);
+ for (FactoryDeclaration augmentation in _augmentations) {
+ augmentation.inferRedirectionTarget(
+ libraryBuilder: libraryBuilder,
+ factoryBuilder: this,
+ classHierarchy: classHierarchy,
+ delayedDefaultValueCloners: delayedDefaultValueCloners);
+ }
}
bool _hasBuiltOutlineExpressions = false;
@@ -447,95 +369,61 @@
if (_hasBuiltOutlineExpressions) return;
_hasBuiltOutlineExpressions = true;
- if (_introductory.redirectionTarget != null && isConst && isAugmenting) {
- origin.buildOutlineExpressions(
- classHierarchy, delayedDefaultValueCloners);
- }
-
_introductory.buildOutlineExpressions(
libraryBuilder: libraryBuilder,
factoryBuilder: this,
classHierarchy: classHierarchy,
- delayedDefaultValueCloners: delayedDefaultValueCloners);
-
- if (isConst && isAugmenting) {
- _finishAugmentation();
+ delayedDefaultValueCloners: delayedDefaultValueCloners,
+ createFileUriExpression:
+ _introductory.fileUri != _lastDeclaration.fileUri);
+ for (FactoryDeclaration augmentation in _augmentations) {
+ augmentation.buildOutlineExpressions(
+ libraryBuilder: libraryBuilder,
+ factoryBuilder: this,
+ classHierarchy: classHierarchy,
+ delayedDefaultValueCloners: delayedDefaultValueCloners,
+ createFileUriExpression:
+ augmentation.fileUri != _lastDeclaration.fileUri);
}
-
- List<SourceFactoryBuilder>? augmentations = _augmentations;
- if (augmentations != null) {
- for (SourceFactoryBuilder augmentation in augmentations) {
- augmentation.buildOutlineExpressions(
- classHierarchy, delayedDefaultValueCloners);
- }
- }
- }
-
- void _finishAugmentation() {
- finishProcedureAugmentation(_procedure, _introductory.procedure);
-
- if (_introductory.tearOff != null) {
- finishProcedureAugmentation(_tearOff!, _introductory.tearOff!);
- }
-
- if (_introductory.redirectionTarget != null) {
- if (origin.redirectionTarget != null) {
- // Coverage-ignore-block(suite): Not run.
- origin._redirectionTypeArguments = _redirectionTypeArguments;
- }
- }
- }
-
- BodyBuilderContext createBodyBuilderContext() {
- return new FactoryBodyBuilderContext(this, _procedure);
}
void resolveRedirectingFactory() {
_introductory.resolveRedirectingFactory(
libraryBuilder: libraryBuilder, factoryBuilder: this);
-
- List<SourceFactoryBuilder>? augmentations = _augmentations;
- if (augmentations != null) {
- for (SourceFactoryBuilder augmentation in augmentations) {
- augmentation.resolveRedirectingFactory();
- }
+ for (FactoryDeclaration augmentation in _augmentations) {
+ augmentation.resolveRedirectingFactory(
+ libraryBuilder: libraryBuilder, factoryBuilder: this);
}
}
-
- void _setRedirectingFactoryBody(Member target, List<DartType> typeArguments) {
- _introductory.setRedirectingFactoryBody(
- libraryBuilder: libraryBuilder,
- factoryBuilder: this,
- target: target,
- typeArguments: typeArguments);
- }
}
class FactoryBodyBuilderContext extends BodyBuilderContext {
- final SourceFactoryBuilder _member;
+ final SourceFactoryBuilder _builder;
- final Member _builtMember;
+ final FactoryDeclaration _declaration;
- FactoryBodyBuilderContext(this._member, this._builtMember)
- : super(_member.libraryBuilder, _member.declarationBuilder,
- isDeclarationInstanceMember: _member.isDeclarationInstanceMember);
+ final Member _member;
+
+ FactoryBodyBuilderContext(this._builder, this._declaration, this._member)
+ : super(_builder.libraryBuilder, _builder.declarationBuilder,
+ isDeclarationInstanceMember: _builder.isDeclarationInstanceMember);
@override
VariableDeclaration getFormalParameter(int index) {
- return _member.getFormalParameter(index);
+ return _declaration.getFormalParameter(index);
}
@override
VariableDeclaration? getTearOffParameter(int index) {
- return _member.getTearOffParameter(index);
+ return _declaration.getTearOffParameter(index);
}
@override
- TypeBuilder get returnType => _member.returnType;
+ TypeBuilder get returnType => _declaration.returnType;
@override
// Coverage-ignore(suite): Not run.
- List<FormalParameterBuilder>? get formals => _member.formals;
+ List<FormalParameterBuilder>? get formals => _declaration.formals;
@override
LocalScope computeFormalParameterInitializerScope(LocalScope parent) {
@@ -546,78 +434,65 @@
@override
FormalParameterBuilder? getFormalParameterByName(Identifier name) {
- return _member.getFormal(name);
+ return _declaration.getFormal(name);
}
@override
- int get memberNameLength => _member.name.length;
+ int get memberNameLength => _builder.name.length;
@override
FunctionNode get function {
- return _member.function;
+ return _declaration.function;
}
@override
// Coverage-ignore(suite): Not run.
- bool get isFactory {
- return _member.isFactory;
- }
+ bool get isFactory => true;
@override
// Coverage-ignore(suite): Not run.
bool get isNativeMethod {
- return _member.isNative;
+ return _declaration.isNative;
}
@override
bool get isExternalFunction {
- return _member.isExternal;
+ return _declaration.isExternal;
}
@override
- bool get isSetter {
- return _member.isSetter;
- }
+ bool get isSetter => false;
@override
- // Coverage-ignore(suite): Not run.
- AugmentSuperTarget? get augmentSuperTarget {
- if (_member.isAugmentation) {
- return _member.augmentSuperTarget;
- }
- return null;
- }
-
- @override
- int get memberNameOffset => _member.fileOffset;
+ int get memberNameOffset => _declaration.fileOffset;
@override
// Coverage-ignore(suite): Not run.
void registerSuperCall() {
- _builtMember.transformerFlags |= TransformerFlag.superCalls;
+ _member.transformerFlags |= TransformerFlag.superCalls;
}
@override
void registerFunctionBody(Statement body) {
- _member.setBody(body);
+ _declaration.setBody(body);
}
@override
void setAsyncModifier(AsyncMarker asyncModifier) {
- _member._setAsyncModifier(asyncModifier);
+ _declaration.setAsyncModifier(asyncModifier);
}
@override
- bool get isRedirectingFactory => _member.redirectionTarget != null;
+ bool get isRedirectingFactory => _declaration.redirectionTarget != null;
@override
DartType get returnTypeContext {
- return _member.function.returnType;
+ return _declaration.function.returnType;
}
@override
String get redirectingFactoryTargetName {
- return _member.redirectionTarget!.fullNameForErrors;
+ return _declaration.redirectionTarget!.fullNameForErrors;
}
}
@@ -643,13 +518,15 @@
void buildOutlineNodes(
{required SourceLibraryBuilder libraryBuilder,
required SourceFactoryBuilder factoryBuilder,
- required BuildNodesCallback f});
+ required BuildNodesCallback f,
+ required bool isConst});
void buildOutlineExpressions(
{required SourceLibraryBuilder libraryBuilder,
required SourceFactoryBuilder factoryBuilder,
required ClassHierarchy classHierarchy,
- required List<DelayedDefaultValueCloner> delayedDefaultValueCloners});
+ required List<DelayedDefaultValueCloner> delayedDefaultValueCloners,
+ required bool createFileUriExpression});
void inferRedirectionTarget(
{required SourceLibraryBuilder libraryBuilder,
@@ -671,7 +548,7 @@
void setBody(Statement value);
- void set asyncModifier(AsyncMarker newModifier);
+ void setAsyncModifier(AsyncMarker newModifier);
FormalParameterBuilder? getFormal(Identifier identifier);
@@ -681,6 +558,12 @@
bool get isNative;
+ bool get isExternal;
+
+ Uri get fileUri;
+
+ int get fileOffset;
+
void becomeNative(
{required SourceLoader loader,
required Iterable<Annotatable> annotatables});
@@ -707,6 +590,9 @@
Iterable<MetadataBuilder>? get metadata;
ConstructorReferenceBuilder? get redirectionTarget;
+
+ BodyBuilderContext createBodyBuilderContext(
+ SourceFactoryBuilder factoryBuilder);
}
class FactoryDeclarationImpl implements FactoryDeclaration {
@@ -722,7 +608,9 @@
: _encoding = new FactoryEncoding(_fragment,
typeParameters: typeParameters,
returnType: returnType,
- redirectionTarget: _fragment.redirectionTarget);
+ redirectionTarget: _fragment.redirectionTarget) {
+ _fragment.declaration = this;
+ }
@override
Procedure get procedure => _encoding.procedure;
@@ -738,6 +626,15 @@
bool get isNative => _encoding.isNative;
@override
+ bool get isExternal => _fragment.modifiers.isExternal;
+
+ @override
+ Uri get fileUri => _fragment.fileUri;
+
+ @override
+ int get fileOffset => _fragment.fullNameOffset;
+
+ @override
void becomeNative(
{required SourceLoader loader,
required Iterable<Annotatable> annotatables}) {
@@ -767,9 +664,20 @@
void buildOutlineNodes(
{required SourceLibraryBuilder libraryBuilder,
required SourceFactoryBuilder factoryBuilder,
- required BuildNodesCallback f}) {
+ required BuildNodesCallback f,
+ required bool isConst}) {
_encoding.buildOutlineNodes(
- libraryBuilder: libraryBuilder, factoryBuilder: factoryBuilder, f: f);
+ libraryBuilder: libraryBuilder,
+ factoryBuilder: factoryBuilder,
+ f: f,
+ isConst: isConst);
+ }
+
+ @override
+ BodyBuilderContext createBodyBuilderContext(
+ SourceFactoryBuilder factoryBuilder) {
+ return new FactoryBodyBuilderContext(
+ factoryBuilder, this, _encoding.procedure);
}
@override
@@ -777,26 +685,27 @@
{required SourceLibraryBuilder libraryBuilder,
required SourceFactoryBuilder factoryBuilder,
required ClassHierarchy classHierarchy,
- required List<DelayedDefaultValueCloner> delayedDefaultValueCloners}) {
+ required List<DelayedDefaultValueCloner> delayedDefaultValueCloners,
+ required bool createFileUriExpression}) {
_fragment.formals?.infer(classHierarchy);
+ BodyBuilderContext bodyBuilderContext =
+ createBodyBuilderContext(factoryBuilder);
+
for (Annotatable annotatable in factoryBuilder.annotatables) {
MetadataBuilder.buildAnnotations(
annotatable,
_fragment.metadata,
- factoryBuilder.createBodyBuilderContext(),
+ bodyBuilderContext,
libraryBuilder,
_fragment.fileUri,
_fragment.enclosingScope,
- createFileUriExpression: factoryBuilder.isAugmented);
+ createFileUriExpression: createFileUriExpression);
}
if (typeParameters != null) {
for (int i = 0; i < typeParameters!.length; i++) {
- typeParameters![i].buildOutlineExpressions(
- libraryBuilder,
- factoryBuilder.createBodyBuilderContext(),
- classHierarchy,
- _fragment.typeParameterScope);
+ typeParameters![i].buildOutlineExpressions(libraryBuilder,
+ bodyBuilderContext, classHierarchy, _fragment.typeParameterScope);
}
}
@@ -817,6 +726,7 @@
_encoding.buildOutlineExpressions(
libraryBuilder: libraryBuilder,
factoryBuilder: factoryBuilder,
+ bodyBuilderContext: bodyBuilderContext,
classHierarchy: classHierarchy,
delayedDefaultValueCloners: delayedDefaultValueCloners);
}
@@ -827,9 +737,12 @@
required SourceFactoryBuilder factoryBuilder,
required ClassHierarchy classHierarchy,
required List<DelayedDefaultValueCloner> delayedDefaultValueCloners}) {
+ BodyBuilderContext bodyBuilderContext =
+ createBodyBuilderContext(factoryBuilder);
_encoding.inferRedirectionTarget(
libraryBuilder: libraryBuilder,
factoryBuilder: factoryBuilder,
+ bodyBuilderContext: bodyBuilderContext,
classHierarchy: classHierarchy,
delayedDefaultValueCloners: delayedDefaultValueCloners);
}
@@ -875,7 +788,7 @@
}
@override
- void set asyncModifier(AsyncMarker newModifier) {
+ void setAsyncModifier(AsyncMarker newModifier) {
_encoding.asyncModifier = newModifier;
}
@@ -909,6 +822,7 @@
}
@override
+ // Coverage-ignore(suite): Not run.
void setRedirectingFactoryBody(
{required SourceLibraryBuilder libraryBuilder,
required SourceFactoryBuilder factoryBuilder,
@@ -1033,7 +947,8 @@
void buildOutlineNodes(
{required SourceLibraryBuilder libraryBuilder,
required SourceFactoryBuilder factoryBuilder,
- required BuildNodesCallback f}) {
+ required BuildNodesCallback f,
+ required bool isConst}) {
_procedureInternal.function.asyncMarker = _asyncModifier;
if (_redirectionTarget == null &&
!_fragment.modifiers.isAbstract &&
@@ -1053,7 +968,10 @@
_procedureInternal.fileEndOffset;
_procedureInternal.isAbstract = _fragment.modifiers.isAbstract;
_procedureInternal.isExternal = _fragment.modifiers.isExternal;
- _procedureInternal.isConst = _fragment.modifiers.isConst;
+ // TODO(johnniwinther): DDC platform currently relies on the ability to
+ // patch a const constructor with a non-const patch. Remove this and enforce
+ // equal constness on origin and patch.
+ _procedureInternal.isConst = isConst;
_procedureInternal.isStatic = _fragment.modifiers.isStatic;
if (_redirectionTarget != null) {
@@ -1095,6 +1013,7 @@
void buildOutlineExpressions(
{required SourceLibraryBuilder libraryBuilder,
required SourceFactoryBuilder factoryBuilder,
+ required BodyBuilderContext bodyBuilderContext,
required ClassHierarchy classHierarchy,
required List<DelayedDefaultValueCloner> delayedDefaultValueCloners}) {
if (_delayedDefaultValueCloner != null) {
@@ -1105,6 +1024,7 @@
void inferRedirectionTarget(
{required SourceLibraryBuilder libraryBuilder,
required SourceFactoryBuilder factoryBuilder,
+ required BodyBuilderContext bodyBuilderContext,
required ClassHierarchy classHierarchy,
required List<DelayedDefaultValueCloner> delayedDefaultValueCloners}) {
if (_redirectionTarget == null) {
@@ -1128,11 +1048,8 @@
_fragment.typeParameterScope,
null);
InferenceHelper helper = libraryBuilder.loader
- .createBodyBuilderForOutlineExpression(
- libraryBuilder,
- factoryBuilder.createBodyBuilderContext(),
- _fragment.enclosingScope,
- _fragment.fileUri);
+ .createBodyBuilderForOutlineExpression(libraryBuilder,
+ bodyBuilderContext, _fragment.enclosingScope, _fragment.fileUri);
Builder? targetBuilder = _redirectionTarget.target;
if (targetBuilder is SourceMemberBuilder) {
@@ -1355,22 +1272,6 @@
..parent = _procedureInternal.function;
_procedureInternal.function.redirectingFactoryTarget =
new RedirectingFactoryTarget(target, typeArguments);
- if (factoryBuilder.isAugmenting) {
- if (_procedureInternal.function.typeParameters.isNotEmpty) {
- Map<TypeParameter, DartType> substitution = <TypeParameter, DartType>{};
- for (int i = 0;
- i < _procedureInternal.function.typeParameters.length;
- i++) {
- substitution[_procedureInternal.function.typeParameters[i]] =
- new TypeParameterType.withDefaultNullability(
- factoryBuilder.origin.function.typeParameters[i]);
- }
- typeArguments = new List<DartType>.generate(typeArguments.length,
- (int i) => substitute(typeArguments[i], substitution),
- growable: false);
- }
- factoryBuilder.origin._setRedirectingFactoryBody(target, typeArguments);
- }
}
void _addProblemForRedirectingFactory(
@@ -1427,21 +1328,6 @@
// of their own.
FunctionType factoryType = _procedureInternal.function
.computeThisFunctionType(Nullability.nonNullable);
- if (factoryBuilder.isAugmenting) {
- // The redirection target type uses the origin type parameters so we must
- // substitute augmentation type parameters before checking subtyping.
- if (_procedureInternal.function.typeParameters.isNotEmpty) {
- Map<TypeParameter, DartType> substitution = <TypeParameter, DartType>{};
- for (int i = 0;
- i < _procedureInternal.function.typeParameters.length;
- i++) {
- substitution[_procedureInternal.function.typeParameters[i]] =
- new TypeParameterType.withDefaultNullability(
- factoryBuilder.origin.function.typeParameters[i]);
- }
- factoryType = substitute(factoryType, substitution) as FunctionType;
- }
- }
FunctionType? redirecteeType = _computeRedirecteeType(
libraryBuilder: libraryBuilder,
factoryBuilder: factoryBuilder,
@@ -1449,7 +1335,7 @@
Map<TypeParameter, DartType> substitutionMap = {};
for (int i = 0; i < factoryType.typeParameters.length; i++) {
TypeParameter functionTypeParameter =
- factoryBuilder.origin.function.typeParameters[i];
+ factoryBuilder.function.typeParameters[i];
substitutionMap[functionTypeParameter] =
new StructuralParameterType.withDefaultNullability(
factoryType.typeParameters[i]);
diff --git a/pkg/front_end/lib/src/source/source_function_builder.dart b/pkg/front_end/lib/src/source/source_function_builder.dart
index 7e31aac..b1b1d53 100644
--- a/pkg/front_end/lib/src/source/source_function_builder.dart
+++ b/pkg/front_end/lib/src/source/source_function_builder.dart
@@ -15,54 +15,11 @@
import '../builder/builder.dart';
import '../builder/declaration_builders.dart';
import '../builder/formal_parameter_builder.dart';
-import '../builder/function_builder.dart';
import '../builder/omitted_type_builder.dart';
import '../builder/type_builder.dart';
import '../type_inference/type_inference_engine.dart'
show IncludesTypeParametersNonCovariantly;
import 'source_library_builder.dart';
-import 'source_loader.dart' show SourceLoader;
-import 'source_member_builder.dart';
-
-abstract class SourceFunctionBuilder
- implements FunctionBuilder, SourceMemberBuilder {
- List<NominalParameterBuilder>? get typeParameters;
-
- List<FormalParameterBuilder>? get formals;
-
- @override
- bool get isAbstract;
-
- @override
- bool get isConstructor;
-
- @override
- bool get isRegularMethod;
-
- @override
- bool get isGetter;
-
- @override
- bool get isSetter;
-
- @override
- bool get isOperator;
-
- @override
- bool get isFactory;
-
- bool get isNative;
-
- /// Returns the parameter for 'this' synthetically added to extension
- /// instance members.
- VariableDeclaration? get thisVariable;
-
- /// Returns a list of synthetic type parameters added to extension instance
- /// members.
- List<TypeParameter>? get thisTypeParameters;
-
- void becomeNative(SourceLoader loader);
-}
/// Builds the [TypeParameter]s for [declaredTypeParameters] and the parameter
/// [VariableDeclaration]s for [declaredFormals] and adds them to [function].
diff --git a/pkg/front_end/lib/src/source/source_loader.dart b/pkg/front_end/lib/src/source/source_loader.dart
index 4fd70a7..ad22718 100644
--- a/pkg/front_end/lib/src/source/source_loader.dart
+++ b/pkg/front_end/lib/src/source/source_loader.dart
@@ -2785,10 +2785,10 @@
LibraryBuilder? library =
lookupLoadedLibraryBuilder(kernelLibrary.importUri);
if (library == null) {
+ // Coverage-ignore-block(suite): Not run.
return target.dillTarget.loader
.computeExtensionTypeBuilderFromTargetExtensionType(extensionType);
}
- // Coverage-ignore(suite): Not run.
return library.lookupLocalMember(extensionType.name, required: true)
as ExtensionTypeDeclarationBuilder;
}
diff --git a/pkg/front_end/lib/src/source/type_parameter_scope_builder.dart b/pkg/front_end/lib/src/source/type_parameter_scope_builder.dart
index 97aa728..d61c459 100644
--- a/pkg/front_end/lib/src/source/type_parameter_scope_builder.dart
+++ b/pkg/front_end/lib/src/source/type_parameter_scope_builder.dart
@@ -1974,46 +1974,69 @@
}
case FactoryFragment():
String name = fragment.name;
- NominalParameterCopy? nominalParameterCopy =
- NominalParameterCopy.copyTypeParameters(
- unboundNominalParameters: unboundNominalParameters,
- oldParameterBuilders: declarationBuilder!.typeParameters,
- oldParameterFragments:
- fragment.enclosingDeclaration.typeParameters,
- kind: TypeParameterKind.function,
- instanceTypeParameterAccess:
- InstanceTypeParameterAccessState.Allowed);
- List<NominalParameterBuilder>? typeParameters =
- nominalParameterCopy?.newParameterBuilders;
- TypeBuilder returnType;
- switch (declarationBuilder) {
- case ExtensionBuilder():
- // Make the synthesized return type invalid for extensions.
- returnType = new NamedTypeBuilderImpl.forInvalidType(
- fragment.constructorName.fullName,
- const NullabilityBuilder.omitted(),
- messageExtensionDeclaresConstructor.withLocation(
- fragment.fileUri,
- fragment.constructorName.fullNameOffset,
- fragment.constructorName.fullNameLength));
- case ClassBuilder():
- case ExtensionTypeDeclarationBuilder():
- returnType = new NamedTypeBuilderImpl.fromTypeDeclarationBuilder(
- declarationBuilder, const NullabilityBuilder.omitted(),
- arguments: nominalParameterCopy?.newTypeArguments,
- fileUri: fragment.fileUri,
- charOffset: fragment.constructorName.fullNameOffset,
- instanceTypeParameterAccess:
- InstanceTypeParameterAccessState.Allowed);
+ Modifiers modifiers = fragment.modifiers;
+
+ FactoryDeclaration createFactoryDeclaration(FactoryFragment fragment) {
+ NominalParameterCopy? nominalParameterCopy =
+ NominalParameterCopy.copyTypeParameters(
+ unboundNominalParameters: unboundNominalParameters,
+ oldParameterBuilders: declarationBuilder!.typeParameters,
+ oldParameterFragments:
+ fragment.enclosingDeclaration.typeParameters,
+ kind: TypeParameterKind.function,
+ instanceTypeParameterAccess:
+ InstanceTypeParameterAccessState.Allowed);
+ List<NominalParameterBuilder>? typeParameters =
+ nominalParameterCopy?.newParameterBuilders;
+ TypeBuilder returnType;
+ switch (declarationBuilder) {
+ case ExtensionBuilder():
+ // Make the synthesized return type invalid for extensions.
+ returnType = new NamedTypeBuilderImpl.forInvalidType(
+ fragment.constructorName.fullName,
+ const NullabilityBuilder.omitted(),
+ messageExtensionDeclaresConstructor.withLocation(
+ fragment.fileUri,
+ fragment.constructorName.fullNameOffset,
+ fragment.constructorName.fullNameLength));
+ case ClassBuilder():
+ case ExtensionTypeDeclarationBuilder():
+ returnType = new NamedTypeBuilderImpl.fromTypeDeclarationBuilder(
+ declarationBuilder, const NullabilityBuilder.omitted(),
+ arguments: nominalParameterCopy?.newTypeArguments,
+ fileUri: fragment.fileUri,
+ charOffset: fragment.constructorName.fullNameOffset,
+ instanceTypeParameterAccess:
+ InstanceTypeParameterAccessState.Allowed);
+ }
+
+ fragment.typeParameterNameSpace.addTypeParameters(
+ problemReporting, typeParameters,
+ ownerName: fragment.name, allowNameConflict: true);
+ return new FactoryDeclarationImpl(fragment,
+ returnType: returnType, typeParameters: typeParameters);
}
- fragment.typeParameterNameSpace.addTypeParameters(
- problemReporting, typeParameters,
- ownerName: fragment.name, allowNameConflict: true);
- FactoryDeclaration introductoryDeclaration = new FactoryDeclarationImpl(
- fragment,
- returnType: returnType,
- typeParameters: typeParameters);
+ FactoryDeclaration introductoryDeclaration =
+ createFactoryDeclaration(fragment);
+
+ bool isRedirectingFactory = fragment.redirectionTarget != null;
+ List<FactoryDeclaration> augmentationDeclarations = [];
+ if (augmentations != null) {
+ for (Fragment augmentation in augmentations) {
+ // Promote [augmentation] to [FactoryFragment].
+ augmentation as FactoryFragment;
+
+ augmentationDeclarations
+ .add(createFactoryDeclaration(augmentation));
+
+ isRedirectingFactory |= augmentation.redirectionTarget != null;
+
+ if (!augmentation.modifiers.isExternal) {
+ modifiers -= Modifiers.External;
+ }
+ }
+ }
NameScheme nameScheme = new NameScheme(
containerName: containerName,
@@ -2040,21 +2063,31 @@
}
SourceFactoryBuilder factoryBuilder = new SourceFactoryBuilder(
- modifiers: fragment.modifiers,
+ modifiers: modifiers,
name: name,
libraryBuilder: enclosingLibraryBuilder,
- declarationBuilder: declarationBuilder,
+ declarationBuilder: declarationBuilder!,
fileUri: fragment.fileUri,
fileOffset: fragment.fullNameOffset,
procedureReference: procedureReference,
tearOffReference: tearOffReference,
nameScheme: nameScheme,
- introductory: introductoryDeclaration);
- if (fragment.redirectionTarget != null) {
+ introductory: introductoryDeclaration,
+ augmentations: augmentationDeclarations);
+ if (isRedirectingFactory) {
(enclosingLibraryBuilder.redirectingFactoryBuilders ??= [])
.add(factoryBuilder);
}
fragment.builder = factoryBuilder;
+ if (augmentations != null) {
+ for (Fragment augmentation in augmentations) {
+ // Promote [augmentation] to [FactoryFragment].
+ augmentation as FactoryFragment;
+
+ augmentation.builder = factoryBuilder;
+ }
+ augmentations = null;
+ }
builders.add(new _AddBuilder(fragment.name, factoryBuilder,
fragment.fileUri, fragment.fullNameOffset,
inPatch: fragment.enclosingDeclaration.isPatch));
@@ -2095,6 +2128,7 @@
}
if (augmentations != null) {
for (Fragment augmentation in augmentations) {
+ // Coverage-ignore-block(suite): Not run.
createBuilder(augmentation);
}
}
@@ -2480,8 +2514,7 @@
Uri fileUri = addBuilder.fileUri;
int charOffset = addBuilder.charOffset;
- bool isConstructor = declaration is FunctionBuilder &&
- (declaration.isConstructor || declaration.isFactory);
+ bool isConstructor = declaration.isConstructor || declaration.isFactory;
if (!isConstructor && name == _name) {
problemReporting.addProblem(
messageMemberWithSameNameAsClass, charOffset, noLength, fileUri);
diff --git a/pkg/front_end/lib/src/type_inference/type_inference_engine.dart b/pkg/front_end/lib/src/type_inference/type_inference_engine.dart
index 9515f9f..ba71d08 100644
--- a/pkg/front_end/lib/src/type_inference/type_inference_engine.dart
+++ b/pkg/front_end/lib/src/type_inference/type_inference_engine.dart
@@ -363,10 +363,10 @@
InferenceDataForTesting? dataForTesting) {
AssignedVariables<TreeNode, VariableDeclaration> assignedVariables;
if (dataForTesting != null) {
+ // Coverage-ignore-block(suite): Not run.
assignedVariables = dataForTesting.flowAnalysisResult.assignedVariables =
new AssignedVariablesForTesting<TreeNode, VariableDeclaration>();
} else {
- // Coverage-ignore-block(suite): Not run.
assignedVariables =
new AssignedVariables<TreeNode, VariableDeclaration>();
}
@@ -397,10 +397,10 @@
InferenceDataForTesting? dataForTesting) {
AssignedVariables<TreeNode, VariableDeclaration> assignedVariables;
if (dataForTesting != null) {
+ // Coverage-ignore-block(suite): Not run.
assignedVariables = dataForTesting.flowAnalysisResult.assignedVariables =
new AssignedVariablesForTesting<TreeNode, VariableDeclaration>();
} else {
- // Coverage-ignore-block(suite): Not run.
assignedVariables =
new AssignedVariables<TreeNode, VariableDeclaration>();
}
@@ -422,7 +422,6 @@
}
}
-// Coverage-ignore(suite): Not run.
// TODO(cstefantsova): Merge with [TypeInferenceResultForTesting].
class InferenceDataForTesting extends shared
.TypeConstraintGenerationDataForTesting<VariableDeclaration, TreeNode> {
@@ -505,7 +504,6 @@
}
@override
- // Coverage-ignore(suite): Not run.
SharedTypeView get dynamicType {
return new SharedTypeView(const DynamicType());
}
@@ -521,7 +519,6 @@
}
@override
- // Coverage-ignore(suite): Not run.
SharedTypeView get neverType {
return new SharedTypeView(const NeverType.nonNullable());
}
@@ -583,30 +580,29 @@
}
@override
+ // Coverage-ignore(suite): Not run.
bool isExtensionTypeInternal(DartType type) => type is ExtensionType;
@override
- // Coverage-ignore(suite): Not run.
bool isFinal(VariableDeclaration variable) {
return variable.isFinal;
}
@override
+ // Coverage-ignore(suite): Not run.
bool isInterfaceTypeInternal(DartType type) {
return type is InterfaceType;
}
@override
- // Coverage-ignore(suite): Not run.
bool isNever(SharedTypeView type) {
return typeEnvironment.coreTypes.isBottom(type.unwrapTypeView());
}
@override
+ // Coverage-ignore(suite): Not run.
bool isObject(SharedTypeView type) {
- DartType unwrappedType = type // Coverage-ignore(suite): Not run.
- .unwrapTypeView();
- // Coverage-ignore(suite): Not run.
+ DartType unwrappedType = type.unwrapTypeView();
return unwrappedType is InterfaceType &&
unwrappedType.classNode == typeEnvironment.objectClass &&
unwrappedType.nullability == Nullability.nonNullable;
@@ -743,6 +739,7 @@
}
@override
+ // Coverage-ignore(suite): Not run.
bool isTypeSchemaSatisfied(
{required SharedTypeSchemaView typeSchema,
required SharedTypeView type}) {
@@ -751,7 +748,6 @@
}
@override
- // Coverage-ignore(suite): Not run.
bool isVariableFinal(VariableDeclaration node) {
return node.isFinal;
}
@@ -921,6 +917,7 @@
switch (modifier) {
case NullabilitySuffix.none:
return computeTypeWithoutNullabilityMarker(type);
+ // Coverage-ignore(suite): Not run.
case NullabilitySuffix.question:
return type.withDeclaredNullability(Nullability.nullable);
// Coverage-ignore(suite): Not run.
@@ -1025,6 +1022,7 @@
if (type is TypeParameterType) {
return type.parameter.bound;
} else if (type is StructuralParameterType) {
+ // Coverage-ignore-block(suite): Not run.
return type.parameter.bound;
} else if (type is IntersectionType) {
return type.right;
diff --git a/pkg/front_end/test/coverage_suite_expected.dart b/pkg/front_end/test/coverage_suite_expected.dart
index 9d9386b..823e946 100644
--- a/pkg/front_end/test/coverage_suite_expected.dart
+++ b/pkg/front_end/test/coverage_suite_expected.dart
@@ -240,7 +240,7 @@
),
// 100.0%.
"package:front_end/src/builder/builder.dart": (
- hitCount: 30,
+ hitCount: 29,
missCount: 0,
),
// 100.0%.
@@ -515,7 +515,7 @@
),
// 100.0%.
"package:front_end/src/fragment/factory.dart": (
- hitCount: 49,
+ hitCount: 51,
missCount: 0,
),
// 100.0%.
@@ -865,7 +865,7 @@
),
// 100.0%.
"package:front_end/src/source/source_class_builder.dart": (
- hitCount: 1354,
+ hitCount: 1352,
missCount: 0,
),
// 100.0%.
@@ -875,7 +875,7 @@
),
// 100.0%.
"package:front_end/src/source/source_constructor_builder.dart": (
- hitCount: 430,
+ hitCount: 429,
missCount: 0,
),
// 100.0%.
@@ -896,7 +896,7 @@
),
// 100.0%.
"package:front_end/src/source/source_factory_builder.dart": (
- hitCount: 972,
+ hitCount: 860,
missCount: 0,
),
// 100.0%.
@@ -909,10 +909,10 @@
hitCount: 1085,
missCount: 0,
),
- // 99.88919667590028%.
+ // 100.0%.
"package:front_end/src/source/source_loader.dart": (
hitCount: 1803,
- missCount: 2,
+ missCount: 0,
),
// 100.0%.
"package:front_end/src/source/source_member_builder.dart": (
@@ -946,7 +946,7 @@
),
// 100.0%.
"package:front_end/src/source/type_parameter_scope_builder.dart": (
- hitCount: 1579,
+ hitCount: 1591,
missCount: 0,
),
// 100.0%.
@@ -1025,6 +1025,11 @@
missCount: 0,
),
// 100.0%.
+ "package:front_end/src/type_inference/type_inference_engine.dart": (
+ hitCount: 539,
+ missCount: 0,
+ ),
+ // 100.0%.
"package:front_end/src/type_inference/type_inferrer.dart": (
hitCount: 102,
missCount: 0,
diff --git a/pkg/front_end/test/extensions/extensions_test.dart b/pkg/front_end/test/extensions/extensions_test.dart
index e93509d..4c5e969 100644
--- a/pkg/front_end/test/extensions/extensions_test.dart
+++ b/pkg/front_end/test/extensions/extensions_test.dart
@@ -13,7 +13,8 @@
import 'package:front_end/src/builder/library_builder.dart';
import 'package:front_end/src/builder/member_builder.dart';
import 'package:front_end/src/builder/type_builder.dart';
-import 'package:front_end/src/source/source_function_builder.dart';
+import 'package:front_end/src/source/source_constructor_builder.dart';
+import 'package:front_end/src/source/source_factory_builder.dart';
import 'package:front_end/src/source/source_library_builder.dart';
import 'package:front_end/src/source/source_method_builder.dart';
import 'package:front_end/src/source/source_property_builder.dart';
@@ -231,9 +232,10 @@
MemberBuilder memberBuilder = lookupMemberBuilder(compilerResult, member)!;
Features features = new Features();
features[Tags.builderName] = memberBuilder.name;
- if (memberBuilder is SourceFunctionBuilder) {
- if (memberBuilder.formals != null) {
- for (FormalParameterBuilder parameter in memberBuilder.formals!) {
+ if (memberBuilder is SourceConstructorBuilderImpl) {
+ if (memberBuilder.formalsForTesting != null) {
+ for (FormalParameterBuilder parameter
+ in memberBuilder.formalsForTesting!) {
if (parameter.isRequiredPositional) {
features.addElement(Tags.builderRequiredParameters, parameter.name);
} else if (parameter.isPositional) {
@@ -248,9 +250,35 @@
features.markAsUnsorted(Tags.builderPositionalParameters);
features.markAsUnsorted(Tags.builderNamedParameters);
}
- if (memberBuilder.typeParameters != null) {
+ if (memberBuilder.typeParametersForTesting != null) {
for (NominalParameterBuilder typeVariable
- in memberBuilder.typeParameters!) {
+ in memberBuilder.typeParametersForTesting!) {
+ features.addElement(Tags.builderTypeParameters,
+ typeVariableBuilderToText(typeVariable));
+ }
+ features.markAsUnsorted(Tags.builderTypeParameters);
+ }
+ } else if (memberBuilder is SourceFactoryBuilder) {
+ if (memberBuilder.formalsForTesting != null) {
+ for (FormalParameterBuilder parameter
+ in memberBuilder.formalsForTesting!) {
+ if (parameter.isRequiredPositional) {
+ features.addElement(Tags.builderRequiredParameters, parameter.name);
+ } else if (parameter.isPositional) {
+ features.addElement(
+ Tags.builderPositionalParameters, parameter.name);
+ } else {
+ assert(parameter.isNamed);
+ features.addElement(Tags.builderNamedParameters, parameter.name);
+ }
+ }
+ features.markAsUnsorted(Tags.builderRequiredParameters);
+ features.markAsUnsorted(Tags.builderPositionalParameters);
+ features.markAsUnsorted(Tags.builderNamedParameters);
+ }
+ if (memberBuilder.typeParametersForTesting != null) {
+ for (NominalParameterBuilder typeVariable
+ in memberBuilder.typeParametersForTesting!) {
features.addElement(Tags.builderTypeParameters,
typeVariableBuilderToText(typeVariable));
}
diff --git a/pkg/front_end/test/patching/patching_test.dart b/pkg/front_end/test/patching/patching_test.dart
index f1cc8496..6ab002a 100644
--- a/pkg/front_end/test/patching/patching_test.dart
+++ b/pkg/front_end/test/patching/patching_test.dart
@@ -13,7 +13,6 @@
import 'package:front_end/src/builder/builder.dart';
import 'package:front_end/src/builder/member_builder.dart';
import 'package:front_end/src/source/source_class_builder.dart';
-import 'package:front_end/src/source/source_factory_builder.dart';
import 'package:front_end/src/source/source_member_builder.dart';
import 'package:front_end/src/source/source_property_builder.dart';
import 'package:front_end/src/testing/id_testing_helper.dart';
@@ -164,9 +163,6 @@
if (memberBuilder is SourcePropertyBuilder) {
patchMembers = memberBuilder.augmentationsForTesting;
}
- if (memberBuilder is SourceFactoryBuilder) {
- patchMembers = memberBuilder.augmentationsForTesting;
- }
if (patchMembers != null) {
features.add(Tags.patch);
}
diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.expect
index aa522f2..7bd3284 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.expect
@@ -22,10 +22,10 @@
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
- return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#empty#tearOff<T extends core::num>({core::bool growable = #C2}) → core::List<self::_#MyList#empty#tearOff::T>
return core::List::empty<self::_#MyList#empty#tearOff::T>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
+ return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#from#tearOff<T extends core::num>(core::Iterable<dynamic> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#from#tearOff::T>
return core::List::from<self::_#MyList#from#tearOff::T>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#of#tearOff<T extends core::num>(core::Iterable<self::_#MyList#of#tearOff::T> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#of#tearOff::T>
diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.modular.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.modular.expect
index aa522f2..7bd3284 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.modular.expect
@@ -22,10 +22,10 @@
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
- return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#empty#tearOff<T extends core::num>({core::bool growable = #C2}) → core::List<self::_#MyList#empty#tearOff::T>
return core::List::empty<self::_#MyList#empty#tearOff::T>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
+ return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#from#tearOff<T extends core::num>(core::Iterable<dynamic> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#from#tearOff::T>
return core::List::from<self::_#MyList#from#tearOff::T>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#of#tearOff<T extends core::num>(core::Iterable<self::_#MyList#of#tearOff::T> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#of#tearOff::T>
diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.outline.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.outline.expect
index f14e20f..cb38188 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.outline.expect
@@ -7,10 +7,10 @@
;
static method expect(dynamic expected, dynamic actual) → dynamic
;
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {has-declared-initializer core::bool growable}) → core::List<self::_#MyList#filled#tearOff::T>
- return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#empty#tearOff<T extends core::num>({has-declared-initializer core::bool growable}) → core::List<self::_#MyList#empty#tearOff::T>
return core::List::empty<self::_#MyList#empty#tearOff::T>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {has-declared-initializer core::bool growable}) → core::List<self::_#MyList#filled#tearOff::T>
+ return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#from#tearOff<T extends core::num>(core::Iterable<dynamic> elements, {has-declared-initializer core::bool growable}) → core::List<self::_#MyList#from#tearOff::T>
return core::List::from<self::_#MyList#from#tearOff::T>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#of#tearOff<T extends core::num>(core::Iterable<self::_#MyList#of#tearOff::T> elements, {has-declared-initializer core::bool growable}) → core::List<self::_#MyList#of#tearOff::T>
diff --git a/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.transformed.expect b/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.transformed.expect
index 4416e69..83d6fbb 100644
--- a/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/constructor_tearoffs/lowering/issue47462.dart.strong.transformed.expect
@@ -22,10 +22,10 @@
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
- return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#empty#tearOff<T extends core::num>({core::bool growable = #C2}) → core::List<self::_#MyList#empty#tearOff::T>
return core::List::empty<self::_#MyList#empty#tearOff::T>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
+ return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#from#tearOff<T extends core::num>(core::Iterable<dynamic> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#from#tearOff::T>
return core::List::from<self::_#MyList#from#tearOff::T>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#of#tearOff<T extends core::num>(core::Iterable<self::_#MyList#of#tearOff::T> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#of#tearOff::T>
diff --git a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.expect b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.expect
index 6a3c8ec..0bf0456 100644
--- a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.expect
+++ b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.expect
@@ -36,23 +36,23 @@
: super core::Object::•() {
core::print("patch Class");
}
+ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#new#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#new#tearOff::T% value}) → test::Class<test::Class::_#new#tearOff::T%>
+ return new test::Class::•<test::Class::_#new#tearOff::T%>(defaultValue: defaultValue, value: value);
@#C13
static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::fact::T% value}) → test::Class<test::Class::fact::T%>
return new test::ClassImpl::•<test::Class::fact::T%>(defaultValue: defaultValue, value: value);
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#fact#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#fact#tearOff::T% value}) → test::Class<test::Class::_#fact#tearOff::T%>
return test::Class::fact<test::Class::_#fact#tearOff::T%>(defaultValue: defaultValue, value: value);
@#C13
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect::T% value}) → test::Class<test::Class::redirect::T%> /* redirection-target: test::ClassImpl::•<test::Class::redirect::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::redirect::T% value}) → test::Class<test::Class::redirect::T%> /* redirection-target: test::ClassImpl::•<test::Class::redirect::T%>*/
return new test::ClassImpl::•<test::Class::redirect::T%>(defaultValue: defaultValue, value: value);
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#redirect#tearOff::T% value}) → test::Class<test::Class::_#redirect#tearOff::T%>
return new test::ClassImpl::•<test::Class::_#redirect#tearOff::T%>(defaultValue: defaultValue, value: value);
@#C13
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect2::T% value}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::redirect2::T% value}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/
return new test::ClassImpl::patched<test::Class::redirect2::T%>(defaultValue: defaultValue, value: value);
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect2#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#redirect2#tearOff::T% value}) → test::Class<test::Class::_#redirect2#tearOff::T%>
return new test::ClassImpl::patched<test::Class::_#redirect2#tearOff::T%>(defaultValue: defaultValue, value: value);
- static method /* from org-dartlang-testcase:///patch_lib.dart */ _#new#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#new#tearOff::T% value}) → test::Class<test::Class::_#new#tearOff::T%>
- return new test::Class::•<test::Class::_#new#tearOff::T%>(defaultValue: defaultValue, value: value);
}
@/* from org-dartlang-testcase:///patch_lib.dart */ #C13
class ClassImpl<T extends core::Object? = dynamic> extends core::Object implements test::Class<test::ClassImpl::T%> {
@@ -71,11 +71,11 @@
}
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#new#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#new#tearOff::T value}) → test::Class<test::_#Alias#new#tearOff::T>
return new test::Class::•<test::_#Alias#new#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#fact#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#fact#tearOff::T value}) → test::Class<test::_#Alias#fact#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#fact#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#fact#tearOff::T value}) → test::Class<test::_#Alias#fact#tearOff::T>
return test::Class::fact<test::_#Alias#fact#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect#tearOff::T value}) → test::Class<test::_#Alias#redirect#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect#tearOff::T value}) → test::Class<test::_#Alias#redirect#tearOff::T>
return test::Class::_#redirect#tearOff<test::_#Alias#redirect#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect2#tearOff::T value}) → test::Class<test::_#Alias#redirect2#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect2#tearOff::T value}) → test::Class<test::_#Alias#redirect2#tearOff::T>
return test::Class::_#redirect2#tearOff<test::_#Alias#redirect2#tearOff::T>(defaultValue: defaultValue, value: value);
static method _#AliasImpl#new#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#AliasImpl#new#tearOff::T value}) → test::ClassImpl<test::_#AliasImpl#new#tearOff::T>
return new test::ClassImpl::•<test::_#AliasImpl#new#tearOff::T>(defaultValue: defaultValue, value: value);
@@ -97,5 +97,4 @@
#C12 = static-tearoff test::_#AliasImpl#patched#tearOff
#C13 = _in::_Patch {}
#C14 = true
- #C15 = null
}
diff --git a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.modular.expect b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.modular.expect
index 6a3c8ec..0bf0456 100644
--- a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.modular.expect
@@ -36,23 +36,23 @@
: super core::Object::•() {
core::print("patch Class");
}
+ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#new#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#new#tearOff::T% value}) → test::Class<test::Class::_#new#tearOff::T%>
+ return new test::Class::•<test::Class::_#new#tearOff::T%>(defaultValue: defaultValue, value: value);
@#C13
static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::fact::T% value}) → test::Class<test::Class::fact::T%>
return new test::ClassImpl::•<test::Class::fact::T%>(defaultValue: defaultValue, value: value);
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#fact#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#fact#tearOff::T% value}) → test::Class<test::Class::_#fact#tearOff::T%>
return test::Class::fact<test::Class::_#fact#tearOff::T%>(defaultValue: defaultValue, value: value);
@#C13
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect::T% value}) → test::Class<test::Class::redirect::T%> /* redirection-target: test::ClassImpl::•<test::Class::redirect::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::redirect::T% value}) → test::Class<test::Class::redirect::T%> /* redirection-target: test::ClassImpl::•<test::Class::redirect::T%>*/
return new test::ClassImpl::•<test::Class::redirect::T%>(defaultValue: defaultValue, value: value);
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#redirect#tearOff::T% value}) → test::Class<test::Class::_#redirect#tearOff::T%>
return new test::ClassImpl::•<test::Class::_#redirect#tearOff::T%>(defaultValue: defaultValue, value: value);
@#C13
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect2::T% value}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::redirect2::T% value}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/
return new test::ClassImpl::patched<test::Class::redirect2::T%>(defaultValue: defaultValue, value: value);
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect2#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#redirect2#tearOff::T% value}) → test::Class<test::Class::_#redirect2#tearOff::T%>
return new test::ClassImpl::patched<test::Class::_#redirect2#tearOff::T%>(defaultValue: defaultValue, value: value);
- static method /* from org-dartlang-testcase:///patch_lib.dart */ _#new#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#new#tearOff::T% value}) → test::Class<test::Class::_#new#tearOff::T%>
- return new test::Class::•<test::Class::_#new#tearOff::T%>(defaultValue: defaultValue, value: value);
}
@/* from org-dartlang-testcase:///patch_lib.dart */ #C13
class ClassImpl<T extends core::Object? = dynamic> extends core::Object implements test::Class<test::ClassImpl::T%> {
@@ -71,11 +71,11 @@
}
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#new#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#new#tearOff::T value}) → test::Class<test::_#Alias#new#tearOff::T>
return new test::Class::•<test::_#Alias#new#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#fact#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#fact#tearOff::T value}) → test::Class<test::_#Alias#fact#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#fact#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#fact#tearOff::T value}) → test::Class<test::_#Alias#fact#tearOff::T>
return test::Class::fact<test::_#Alias#fact#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect#tearOff::T value}) → test::Class<test::_#Alias#redirect#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect#tearOff::T value}) → test::Class<test::_#Alias#redirect#tearOff::T>
return test::Class::_#redirect#tearOff<test::_#Alias#redirect#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect2#tearOff::T value}) → test::Class<test::_#Alias#redirect2#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect2#tearOff::T value}) → test::Class<test::_#Alias#redirect2#tearOff::T>
return test::Class::_#redirect2#tearOff<test::_#Alias#redirect2#tearOff::T>(defaultValue: defaultValue, value: value);
static method _#AliasImpl#new#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#AliasImpl#new#tearOff::T value}) → test::ClassImpl<test::_#AliasImpl#new#tearOff::T>
return new test::ClassImpl::•<test::_#AliasImpl#new#tearOff::T>(defaultValue: defaultValue, value: value);
@@ -97,5 +97,4 @@
#C12 = static-tearoff test::_#AliasImpl#patched#tearOff
#C13 = _in::_Patch {}
#C14 = true
- #C15 = null
}
diff --git a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.outline.expect b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.outline.expect
index 34ef2c6..85a7705 100644
--- a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.outline.expect
@@ -20,22 +20,23 @@
@_in::patch
constructor /* from org-dartlang-testcase:///patch_lib.dart */ •({core::bool defaultValue = true, required self2::Class::T% value}) → self2::Class<self2::Class::T%>
;
- @_in::patch
- external static factory fact<T extends core::Object? = dynamic>({core::bool defaultValue = true, required self2::Class::fact::T% value}) → self2::Class<self2::Class::fact::T%>;
- static method _#fact#tearOff<T extends core::Object? = dynamic>({has-declared-initializer core::bool defaultValue, required self2::Class::_#fact#tearOff::T% value}) → self2::Class<self2::Class::_#fact#tearOff::T%>
- return self2::Class::fact<self2::Class::_#fact#tearOff::T%>(defaultValue: defaultValue, value: value);
- @_in::patch
- external static factory redirect<T extends core::Object? = dynamic>({core::bool defaultValue = null, required self2::Class::redirect::T% value}) → self2::Class<self2::Class::redirect::T%> /* redirection-target: self2::ClassImpl::•<self2::Class::redirect::T%>*/
- return new self2::ClassImpl::•<self2::Class::redirect::T%>(defaultValue: defaultValue, value: value);
- static method _#redirect#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue, required self2::Class::_#redirect#tearOff::T% value}) → self2::Class<self2::Class::_#redirect#tearOff::T%>
- return self2::Class::redirect<self2::Class::_#redirect#tearOff::T%>(defaultValue: defaultValue, value: value);
- @_in::patch
- external static factory redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = null, required self2::Class::redirect2::T% value}) → self2::Class<self2::Class::redirect2::T%> /* redirection-target: self2::ClassImpl::patched<self2::Class::redirect2::T%>*/
- return new self2::ClassImpl::patched<self2::Class::redirect2::T%>(defaultValue: defaultValue, value: value);
- static method _#redirect2#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue, required self2::Class::_#redirect2#tearOff::T% value}) → self2::Class<self2::Class::_#redirect2#tearOff::T%>
- return self2::Class::redirect2<self2::Class::_#redirect2#tearOff::T%>(defaultValue: defaultValue, value: value);
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#new#tearOff<T extends core::Object? = dynamic>({has-declared-initializer core::bool defaultValue, required self2::Class::_#new#tearOff::T% value}) → self2::Class<self2::Class::_#new#tearOff::T%>
return new self2::Class::•<self2::Class::_#new#tearOff::T%>(defaultValue: defaultValue, value: value);
+ @_in::patch
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact<T extends core::Object? = dynamic>({core::bool defaultValue = true, required self2::Class::fact::T% value}) → self2::Class<self2::Class::fact::T%>
+ ;
+ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#fact#tearOff<T extends core::Object? = dynamic>({has-declared-initializer core::bool defaultValue, required self2::Class::_#fact#tearOff::T% value}) → self2::Class<self2::Class::_#fact#tearOff::T%>
+ return self2::Class::fact<self2::Class::_#fact#tearOff::T%>(defaultValue: defaultValue, value: value);
+ @_in::patch
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = null, required self2::Class::redirect::T% value}) → self2::Class<self2::Class::redirect::T%> /* redirection-target: self2::ClassImpl::•<self2::Class::redirect::T%>*/
+ return new self2::ClassImpl::•<self2::Class::redirect::T%>(defaultValue: defaultValue, value: value);
+ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue, required self2::Class::_#redirect#tearOff::T% value}) → self2::Class<self2::Class::_#redirect#tearOff::T%>
+ return new self2::ClassImpl::•<self2::Class::_#redirect#tearOff::T%>(defaultValue: defaultValue, value: value);
+ @_in::patch
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = null, required self2::Class::redirect2::T% value}) → self2::Class<self2::Class::redirect2::T%> /* redirection-target: self2::ClassImpl::patched<self2::Class::redirect2::T%>*/
+ return new self2::ClassImpl::patched<self2::Class::redirect2::T%>(defaultValue: defaultValue, value: value);
+ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect2#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue, required self2::Class::_#redirect2#tearOff::T% value}) → self2::Class<self2::Class::_#redirect2#tearOff::T%>
+ return new self2::ClassImpl::patched<self2::Class::_#redirect2#tearOff::T%>(defaultValue: defaultValue, value: value);
}
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
class ClassImpl<T extends core::Object? = dynamic> extends core::Object implements self2::Class<self2::ClassImpl::T%> {
@@ -51,11 +52,11 @@
}
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#new#tearOff<T extends core::num>({has-declared-initializer core::bool defaultValue, required self2::_#Alias#new#tearOff::T value}) → self2::Class<self2::_#Alias#new#tearOff::T>
return new self2::Class::•<self2::_#Alias#new#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#fact#tearOff<T extends core::num>({has-declared-initializer core::bool defaultValue, required self2::_#Alias#fact#tearOff::T value}) → self2::Class<self2::_#Alias#fact#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#fact#tearOff<T extends core::num>({has-declared-initializer core::bool defaultValue, required self2::_#Alias#fact#tearOff::T value}) → self2::Class<self2::_#Alias#fact#tearOff::T>
return self2::Class::fact<self2::_#Alias#fact#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue, required self2::_#Alias#redirect#tearOff::T value}) → self2::Class<self2::_#Alias#redirect#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue, required self2::_#Alias#redirect#tearOff::T value}) → self2::Class<self2::_#Alias#redirect#tearOff::T>
return self2::Class::_#redirect#tearOff<self2::_#Alias#redirect#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue, required self2::_#Alias#redirect2#tearOff::T value}) → self2::Class<self2::_#Alias#redirect2#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue, required self2::_#Alias#redirect2#tearOff::T value}) → self2::Class<self2::_#Alias#redirect2#tearOff::T>
return self2::Class::_#redirect2#tearOff<self2::_#Alias#redirect2#tearOff::T>(defaultValue: defaultValue, value: value);
static method _#AliasImpl#new#tearOff<T extends core::num>({has-declared-initializer core::bool defaultValue, required self2::_#AliasImpl#new#tearOff::T value}) → self2::ClassImpl<self2::_#AliasImpl#new#tearOff::T>
return new self2::ClassImpl::•<self2::_#AliasImpl#new#tearOff::T>(defaultValue: defaultValue, value: value);
@@ -66,9 +67,9 @@
Extra constant evaluation status:
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:10:4 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:27 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:12:21 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:15:10 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:15:4 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:19:4 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:22:4 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:27:1 -> InstanceConstant(const _Patch{})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:29:4 -> InstanceConstant(const _Patch{})
Extra constant evaluation: evaluated: 49, effectively constant: 7
diff --git a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.transformed.expect b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.transformed.expect
index 6a3c8ec..0bf0456 100644
--- a/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/dart2js/tear_off_patch/main.dart.strong.transformed.expect
@@ -36,23 +36,23 @@
: super core::Object::•() {
core::print("patch Class");
}
+ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#new#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#new#tearOff::T% value}) → test::Class<test::Class::_#new#tearOff::T%>
+ return new test::Class::•<test::Class::_#new#tearOff::T%>(defaultValue: defaultValue, value: value);
@#C13
static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::fact::T% value}) → test::Class<test::Class::fact::T%>
return new test::ClassImpl::•<test::Class::fact::T%>(defaultValue: defaultValue, value: value);
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#fact#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#fact#tearOff::T% value}) → test::Class<test::Class::_#fact#tearOff::T%>
return test::Class::fact<test::Class::_#fact#tearOff::T%>(defaultValue: defaultValue, value: value);
@#C13
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect::T% value}) → test::Class<test::Class::redirect::T%> /* redirection-target: test::ClassImpl::•<test::Class::redirect::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::redirect::T% value}) → test::Class<test::Class::redirect::T%> /* redirection-target: test::ClassImpl::•<test::Class::redirect::T%>*/
return new test::ClassImpl::•<test::Class::redirect::T%>(defaultValue: defaultValue, value: value);
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#redirect#tearOff::T% value}) → test::Class<test::Class::_#redirect#tearOff::T%>
return new test::ClassImpl::•<test::Class::_#redirect#tearOff::T%>(defaultValue: defaultValue, value: value);
@#C13
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect2::T% value}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::redirect2::T% value}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/
return new test::ClassImpl::patched<test::Class::redirect2::T%>(defaultValue: defaultValue, value: value);
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#redirect2#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#redirect2#tearOff::T% value}) → test::Class<test::Class::_#redirect2#tearOff::T%>
return new test::ClassImpl::patched<test::Class::_#redirect2#tearOff::T%>(defaultValue: defaultValue, value: value);
- static method /* from org-dartlang-testcase:///patch_lib.dart */ _#new#tearOff<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::_#new#tearOff::T% value}) → test::Class<test::Class::_#new#tearOff::T%>
- return new test::Class::•<test::Class::_#new#tearOff::T%>(defaultValue: defaultValue, value: value);
}
@/* from org-dartlang-testcase:///patch_lib.dart */ #C13
class ClassImpl<T extends core::Object? = dynamic> extends core::Object implements test::Class<test::ClassImpl::T%> {
@@ -71,11 +71,11 @@
}
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#new#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#new#tearOff::T value}) → test::Class<test::_#Alias#new#tearOff::T>
return new test::Class::•<test::_#Alias#new#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#fact#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#fact#tearOff::T value}) → test::Class<test::_#Alias#fact#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#fact#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#fact#tearOff::T value}) → test::Class<test::_#Alias#fact#tearOff::T>
return test::Class::fact<test::_#Alias#fact#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect#tearOff::T value}) → test::Class<test::_#Alias#redirect#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect#tearOff::T value}) → test::Class<test::_#Alias#redirect#tearOff::T>
return test::Class::_#redirect#tearOff<test::_#Alias#redirect#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect2#tearOff::T value}) → test::Class<test::_#Alias#redirect2#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect2#tearOff::T value}) → test::Class<test::_#Alias#redirect2#tearOff::T>
return test::Class::_#redirect2#tearOff<test::_#Alias#redirect2#tearOff::T>(defaultValue: defaultValue, value: value);
static method _#AliasImpl#new#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#AliasImpl#new#tearOff::T value}) → test::ClassImpl<test::_#AliasImpl#new#tearOff::T>
return new test::ClassImpl::•<test::_#AliasImpl#new#tearOff::T>(defaultValue: defaultValue, value: value);
@@ -97,5 +97,4 @@
#C12 = static-tearoff test::_#AliasImpl#patched#tearOff
#C13 = _in::_Patch {}
#C14 = true
- #C15 = null
}
diff --git a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.expect b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.expect
index f776adc..1c10fb5 100644
--- a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.expect
+++ b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.expect
@@ -21,6 +21,8 @@
const constructor /* from org-dartlang-testcase:///patch_lib.dart */ _internal({core::bool defaultValue = #C2}) → test::Class
: test::Class::defaultValue = defaultValue, super core::Object::•()
;
+ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#_internal#tearOff({core::bool defaultValue = #C2}) → test::Class
+ return new test::Class::_internal(defaultValue: defaultValue);
@#C1
static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact({core::bool defaultValue = #C3}) → test::Class
return new test::Class::_internal(defaultValue: defaultValue);
@@ -31,8 +33,6 @@
return throw "unsupported";
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#constFact#tearOff({core::bool defaultValue = #C3}) → test::Class
return test::Class::constFact(defaultValue: defaultValue);
- static method /* from org-dartlang-testcase:///patch_lib.dart */ _#_internal#tearOff({core::bool defaultValue = #C2}) → test::Class
- return new test::Class::_internal(defaultValue: defaultValue);
}
constants {
diff --git a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.modular.expect b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.modular.expect
index f776adc..1c10fb5 100644
--- a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.modular.expect
@@ -21,6 +21,8 @@
const constructor /* from org-dartlang-testcase:///patch_lib.dart */ _internal({core::bool defaultValue = #C2}) → test::Class
: test::Class::defaultValue = defaultValue, super core::Object::•()
;
+ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#_internal#tearOff({core::bool defaultValue = #C2}) → test::Class
+ return new test::Class::_internal(defaultValue: defaultValue);
@#C1
static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact({core::bool defaultValue = #C3}) → test::Class
return new test::Class::_internal(defaultValue: defaultValue);
@@ -31,8 +33,6 @@
return throw "unsupported";
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#constFact#tearOff({core::bool defaultValue = #C3}) → test::Class
return test::Class::constFact(defaultValue: defaultValue);
- static method /* from org-dartlang-testcase:///patch_lib.dart */ _#_internal#tearOff({core::bool defaultValue = #C2}) → test::Class
- return new test::Class::_internal(defaultValue: defaultValue);
}
constants {
diff --git a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.outline.expect b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.outline.expect
index d02c957..7cc3b17 100644
--- a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.outline.expect
@@ -19,21 +19,23 @@
const constructor /* from org-dartlang-testcase:///patch_lib.dart */ _internal({core::bool defaultValue = false}) → self2::Class
: self2::Class::defaultValue = defaultValue, super core::Object::•()
;
- @_in::patch
- external static factory fact({core::bool defaultValue = true}) → self2::Class;
- static method _#fact#tearOff({has-declared-initializer core::bool defaultValue}) → self2::Class
- return self2::Class::fact(defaultValue: defaultValue);
- @_in::patch
- external static factory constFact({core::bool defaultValue = true}) → self2::Class;
- static method _#constFact#tearOff({has-declared-initializer core::bool defaultValue}) → self2::Class
- return self2::Class::constFact(defaultValue: defaultValue);
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#_internal#tearOff({has-declared-initializer core::bool defaultValue}) → self2::Class
return new self2::Class::_internal(defaultValue: defaultValue);
+ @_in::patch
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact({core::bool defaultValue = true}) → self2::Class
+ ;
+ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#fact#tearOff({has-declared-initializer core::bool defaultValue}) → self2::Class
+ return self2::Class::fact(defaultValue: defaultValue);
+ @_in::patch
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ constFact({core::bool defaultValue = true}) → self2::Class
+ ;
+ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#constFact#tearOff({has-declared-initializer core::bool defaultValue}) → self2::Class
+ return self2::Class::constFact(defaultValue: defaultValue);
}
Extra constant evaluation status:
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:26 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:14:4 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:18:4 -> InstanceConstant(const _Patch{})
Extra constant evaluation: evaluated: 10, effectively constant: 3
diff --git a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.transformed.expect b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.transformed.expect
index f776adc..1c10fb5 100644
--- a/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/dartdevc/factory_patch/main.dart.strong.transformed.expect
@@ -21,6 +21,8 @@
const constructor /* from org-dartlang-testcase:///patch_lib.dart */ _internal({core::bool defaultValue = #C2}) → test::Class
: test::Class::defaultValue = defaultValue, super core::Object::•()
;
+ static method /* from org-dartlang-testcase:///patch_lib.dart */ _#_internal#tearOff({core::bool defaultValue = #C2}) → test::Class
+ return new test::Class::_internal(defaultValue: defaultValue);
@#C1
static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact({core::bool defaultValue = #C3}) → test::Class
return new test::Class::_internal(defaultValue: defaultValue);
@@ -31,8 +33,6 @@
return throw "unsupported";
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#constFact#tearOff({core::bool defaultValue = #C3}) → test::Class
return test::Class::constFact(defaultValue: defaultValue);
- static method /* from org-dartlang-testcase:///patch_lib.dart */ _#_internal#tearOff({core::bool defaultValue = #C2}) → test::Class
- return new test::Class::_internal(defaultValue: defaultValue);
}
constants {
diff --git a/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.expect b/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.expect
index 8d654ea..831312d 100644
--- a/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.expect
+++ b/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.expect
@@ -543,10 +543,10 @@
return self::E24|constructor#<self::E24|constructor#_#new#tearOff::T%>(it);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/integers_patch.dart */ _#Alias14#fromEnvironment#tearOff<unrelated T extends core::Object? = dynamic>(core::String name, {core::int defaultValue = #C1}) → core::int
return core::int::fromEnvironment(name, defaultValue: defaultValue);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16b% /* erasure=invalid-type, declared=! */ fill, {core::bool growable = #C2}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
- return core::List::filled<self::E16b% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#empty#tearOff<unrelated T extends core::Object? = dynamic>({core::bool growable = #C2}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
return core::List::empty<self::E16b% /* erasure=invalid-type, declared=! */>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16b% /* erasure=invalid-type, declared=! */ fill, {core::bool growable = #C2}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
+ return core::List::filled<self::E16b% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#from#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements, {core::bool growable = #C3}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
return core::List::from<self::E16b% /* erasure=invalid-type, declared=! */>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#of#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<self::E16b% /* erasure=invalid-type, declared=! */> elements, {core::bool growable = #C3}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
@@ -555,10 +555,10 @@
return core::List::generate<self::E16b% /* erasure=invalid-type, declared=! */>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#unmodifiable#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
return core::List::unmodifiable<self::E16b% /* erasure=invalid-type, declared=! */>(elements);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16a% /* erasure=invalid-type, declared=! */ fill, {core::bool growable = #C2}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
- return core::List::filled<self::E16a% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#empty#tearOff<unrelated T extends core::Object? = dynamic>({core::bool growable = #C2}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
return core::List::empty<self::E16a% /* erasure=invalid-type, declared=! */>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16a% /* erasure=invalid-type, declared=! */ fill, {core::bool growable = #C2}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
+ return core::List::filled<self::E16a% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#from#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements, {core::bool growable = #C3}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
return core::List::from<self::E16a% /* erasure=invalid-type, declared=! */>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#of#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<self::E16a% /* erasure=invalid-type, declared=! */> elements, {core::bool growable = #C3}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
@@ -567,10 +567,10 @@
return core::List::generate<self::E16a% /* erasure=invalid-type, declared=! */>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#unmodifiable#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
return core::List::unmodifiable<self::E16a% /* erasure=invalid-type, declared=! */>(elements);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#filled#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias23#filled#tearOff::T% fill, {core::bool growable = #C2}) → core::List<self::_#Alias23#filled#tearOff::T%>
- return core::List::filled<self::_#Alias23#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#empty#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>({core::bool growable = #C2}) → core::List<self::_#Alias23#empty#tearOff::T%>
return core::List::empty<self::_#Alias23#empty#tearOff::T%>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#filled#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias23#filled#tearOff::T% fill, {core::bool growable = #C2}) → core::List<self::_#Alias23#filled#tearOff::T%>
+ return core::List::filled<self::_#Alias23#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#from#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::Iterable<dynamic> elements, {core::bool growable = #C3}) → core::List<self::_#Alias23#from#tearOff::T%>
return core::List::from<self::_#Alias23#from#tearOff::T%>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#of#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::Iterable<self::_#Alias23#of#tearOff::T%> elements, {core::bool growable = #C3}) → core::List<self::_#Alias23#of#tearOff::T%>
@@ -579,10 +579,10 @@
return core::List::generate<self::_#Alias23#generate#tearOff::T%>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#unmodifiable#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::Iterable<dynamic> elements) → core::List<self::_#Alias23#unmodifiable#tearOff::T%>
return core::List::unmodifiable<self::_#Alias23#unmodifiable#tearOff::T%>(elements);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#filled#tearOff<T extends self::E24<self::_#Alias24#filled#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias24#filled#tearOff::T% fill, {core::bool growable = #C2}) → core::List<self::_#Alias24#filled#tearOff::T%>
- return core::List::filled<self::_#Alias24#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#empty#tearOff<T extends self::E24<self::_#Alias24#empty#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>({core::bool growable = #C2}) → core::List<self::_#Alias24#empty#tearOff::T%>
return core::List::empty<self::_#Alias24#empty#tearOff::T%>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#filled#tearOff<T extends self::E24<self::_#Alias24#filled#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias24#filled#tearOff::T% fill, {core::bool growable = #C2}) → core::List<self::_#Alias24#filled#tearOff::T%>
+ return core::List::filled<self::_#Alias24#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#from#tearOff<T extends self::E24<self::_#Alias24#from#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::Iterable<dynamic> elements, {core::bool growable = #C3}) → core::List<self::_#Alias24#from#tearOff::T%>
return core::List::from<self::_#Alias24#from#tearOff::T%>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#of#tearOff<T extends self::E24<self::_#Alias24#of#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::Iterable<self::_#Alias24#of#tearOff::T%> elements, {core::bool growable = #C3}) → core::List<self::_#Alias24#of#tearOff::T%>
diff --git a/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.modular.expect b/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.modular.expect
index 8d654ea..831312d 100644
--- a/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.modular.expect
@@ -543,10 +543,10 @@
return self::E24|constructor#<self::E24|constructor#_#new#tearOff::T%>(it);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/integers_patch.dart */ _#Alias14#fromEnvironment#tearOff<unrelated T extends core::Object? = dynamic>(core::String name, {core::int defaultValue = #C1}) → core::int
return core::int::fromEnvironment(name, defaultValue: defaultValue);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16b% /* erasure=invalid-type, declared=! */ fill, {core::bool growable = #C2}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
- return core::List::filled<self::E16b% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#empty#tearOff<unrelated T extends core::Object? = dynamic>({core::bool growable = #C2}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
return core::List::empty<self::E16b% /* erasure=invalid-type, declared=! */>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16b% /* erasure=invalid-type, declared=! */ fill, {core::bool growable = #C2}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
+ return core::List::filled<self::E16b% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#from#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements, {core::bool growable = #C3}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
return core::List::from<self::E16b% /* erasure=invalid-type, declared=! */>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#of#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<self::E16b% /* erasure=invalid-type, declared=! */> elements, {core::bool growable = #C3}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
@@ -555,10 +555,10 @@
return core::List::generate<self::E16b% /* erasure=invalid-type, declared=! */>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#unmodifiable#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
return core::List::unmodifiable<self::E16b% /* erasure=invalid-type, declared=! */>(elements);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16a% /* erasure=invalid-type, declared=! */ fill, {core::bool growable = #C2}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
- return core::List::filled<self::E16a% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#empty#tearOff<unrelated T extends core::Object? = dynamic>({core::bool growable = #C2}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
return core::List::empty<self::E16a% /* erasure=invalid-type, declared=! */>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16a% /* erasure=invalid-type, declared=! */ fill, {core::bool growable = #C2}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
+ return core::List::filled<self::E16a% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#from#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements, {core::bool growable = #C3}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
return core::List::from<self::E16a% /* erasure=invalid-type, declared=! */>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#of#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<self::E16a% /* erasure=invalid-type, declared=! */> elements, {core::bool growable = #C3}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
@@ -567,10 +567,10 @@
return core::List::generate<self::E16a% /* erasure=invalid-type, declared=! */>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#unmodifiable#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
return core::List::unmodifiable<self::E16a% /* erasure=invalid-type, declared=! */>(elements);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#filled#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias23#filled#tearOff::T% fill, {core::bool growable = #C2}) → core::List<self::_#Alias23#filled#tearOff::T%>
- return core::List::filled<self::_#Alias23#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#empty#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>({core::bool growable = #C2}) → core::List<self::_#Alias23#empty#tearOff::T%>
return core::List::empty<self::_#Alias23#empty#tearOff::T%>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#filled#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias23#filled#tearOff::T% fill, {core::bool growable = #C2}) → core::List<self::_#Alias23#filled#tearOff::T%>
+ return core::List::filled<self::_#Alias23#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#from#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::Iterable<dynamic> elements, {core::bool growable = #C3}) → core::List<self::_#Alias23#from#tearOff::T%>
return core::List::from<self::_#Alias23#from#tearOff::T%>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#of#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::Iterable<self::_#Alias23#of#tearOff::T%> elements, {core::bool growable = #C3}) → core::List<self::_#Alias23#of#tearOff::T%>
@@ -579,10 +579,10 @@
return core::List::generate<self::_#Alias23#generate#tearOff::T%>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#unmodifiable#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::Iterable<dynamic> elements) → core::List<self::_#Alias23#unmodifiable#tearOff::T%>
return core::List::unmodifiable<self::_#Alias23#unmodifiable#tearOff::T%>(elements);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#filled#tearOff<T extends self::E24<self::_#Alias24#filled#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias24#filled#tearOff::T% fill, {core::bool growable = #C2}) → core::List<self::_#Alias24#filled#tearOff::T%>
- return core::List::filled<self::_#Alias24#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#empty#tearOff<T extends self::E24<self::_#Alias24#empty#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>({core::bool growable = #C2}) → core::List<self::_#Alias24#empty#tearOff::T%>
return core::List::empty<self::_#Alias24#empty#tearOff::T%>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#filled#tearOff<T extends self::E24<self::_#Alias24#filled#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias24#filled#tearOff::T% fill, {core::bool growable = #C2}) → core::List<self::_#Alias24#filled#tearOff::T%>
+ return core::List::filled<self::_#Alias24#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#from#tearOff<T extends self::E24<self::_#Alias24#from#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::Iterable<dynamic> elements, {core::bool growable = #C3}) → core::List<self::_#Alias24#from#tearOff::T%>
return core::List::from<self::_#Alias24#from#tearOff::T%>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#of#tearOff<T extends self::E24<self::_#Alias24#of#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::Iterable<self::_#Alias24#of#tearOff::T%> elements, {core::bool growable = #C3}) → core::List<self::_#Alias24#of#tearOff::T%>
diff --git a/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.outline.expect b/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.outline.expect
index 5fbe8cb..1779129 100644
--- a/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.outline.expect
@@ -483,10 +483,10 @@
return self::E24|constructor#<self::E24|constructor#_#new#tearOff::T%>(it);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/integers_patch.dart */ _#Alias14#fromEnvironment#tearOff<unrelated T extends core::Object? = dynamic>(core::String name, {has-declared-initializer core::int defaultValue}) → core::int
return core::int::fromEnvironment(name, defaultValue: defaultValue);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16b% /* erasure=invalid-type, declared=! */ fill, {has-declared-initializer core::bool growable}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
- return core::List::filled<self::E16b% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#empty#tearOff<unrelated T extends core::Object? = dynamic>({has-declared-initializer core::bool growable}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
return core::List::empty<self::E16b% /* erasure=invalid-type, declared=! */>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16b% /* erasure=invalid-type, declared=! */ fill, {has-declared-initializer core::bool growable}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
+ return core::List::filled<self::E16b% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#from#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements, {has-declared-initializer core::bool growable}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
return core::List::from<self::E16b% /* erasure=invalid-type, declared=! */>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#of#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<self::E16b% /* erasure=invalid-type, declared=! */> elements, {has-declared-initializer core::bool growable}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
@@ -495,10 +495,10 @@
return core::List::generate<self::E16b% /* erasure=invalid-type, declared=! */>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#unmodifiable#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
return core::List::unmodifiable<self::E16b% /* erasure=invalid-type, declared=! */>(elements);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16a% /* erasure=invalid-type, declared=! */ fill, {has-declared-initializer core::bool growable}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
- return core::List::filled<self::E16a% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#empty#tearOff<unrelated T extends core::Object? = dynamic>({has-declared-initializer core::bool growable}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
return core::List::empty<self::E16a% /* erasure=invalid-type, declared=! */>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16a% /* erasure=invalid-type, declared=! */ fill, {has-declared-initializer core::bool growable}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
+ return core::List::filled<self::E16a% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#from#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements, {has-declared-initializer core::bool growable}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
return core::List::from<self::E16a% /* erasure=invalid-type, declared=! */>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#of#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<self::E16a% /* erasure=invalid-type, declared=! */> elements, {has-declared-initializer core::bool growable}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
@@ -507,10 +507,10 @@
return core::List::generate<self::E16a% /* erasure=invalid-type, declared=! */>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#unmodifiable#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
return core::List::unmodifiable<self::E16a% /* erasure=invalid-type, declared=! */>(elements);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#filled#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias23#filled#tearOff::T% fill, {has-declared-initializer core::bool growable}) → core::List<self::_#Alias23#filled#tearOff::T%>
- return core::List::filled<self::_#Alias23#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#empty#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>({has-declared-initializer core::bool growable}) → core::List<self::_#Alias23#empty#tearOff::T%>
return core::List::empty<self::_#Alias23#empty#tearOff::T%>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#filled#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias23#filled#tearOff::T% fill, {has-declared-initializer core::bool growable}) → core::List<self::_#Alias23#filled#tearOff::T%>
+ return core::List::filled<self::_#Alias23#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#from#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::Iterable<dynamic> elements, {has-declared-initializer core::bool growable}) → core::List<self::_#Alias23#from#tearOff::T%>
return core::List::from<self::_#Alias23#from#tearOff::T%>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#of#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::Iterable<self::_#Alias23#of#tearOff::T%> elements, {has-declared-initializer core::bool growable}) → core::List<self::_#Alias23#of#tearOff::T%>
@@ -519,10 +519,10 @@
return core::List::generate<self::_#Alias23#generate#tearOff::T%>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#unmodifiable#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::Iterable<dynamic> elements) → core::List<self::_#Alias23#unmodifiable#tearOff::T%>
return core::List::unmodifiable<self::_#Alias23#unmodifiable#tearOff::T%>(elements);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#filled#tearOff<T extends self::E24<self::_#Alias24#filled#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias24#filled#tearOff::T% fill, {has-declared-initializer core::bool growable}) → core::List<self::_#Alias24#filled#tearOff::T%>
- return core::List::filled<self::_#Alias24#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#empty#tearOff<T extends self::E24<self::_#Alias24#empty#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>({has-declared-initializer core::bool growable}) → core::List<self::_#Alias24#empty#tearOff::T%>
return core::List::empty<self::_#Alias24#empty#tearOff::T%>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#filled#tearOff<T extends self::E24<self::_#Alias24#filled#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias24#filled#tearOff::T% fill, {has-declared-initializer core::bool growable}) → core::List<self::_#Alias24#filled#tearOff::T%>
+ return core::List::filled<self::_#Alias24#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#from#tearOff<T extends self::E24<self::_#Alias24#from#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::Iterable<dynamic> elements, {has-declared-initializer core::bool growable}) → core::List<self::_#Alias24#from#tearOff::T%>
return core::List::from<self::_#Alias24#from#tearOff::T%>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#of#tearOff<T extends self::E24<self::_#Alias24#of#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::Iterable<self::_#Alias24#of#tearOff::T%> elements, {has-declared-initializer core::bool growable}) → core::List<self::_#Alias24#of#tearOff::T%>
diff --git a/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.transformed.expect b/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.transformed.expect
index 8d654ea..831312d 100644
--- a/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extension_types/cyclic_representation_type.dart.strong.transformed.expect
@@ -543,10 +543,10 @@
return self::E24|constructor#<self::E24|constructor#_#new#tearOff::T%>(it);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/integers_patch.dart */ _#Alias14#fromEnvironment#tearOff<unrelated T extends core::Object? = dynamic>(core::String name, {core::int defaultValue = #C1}) → core::int
return core::int::fromEnvironment(name, defaultValue: defaultValue);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16b% /* erasure=invalid-type, declared=! */ fill, {core::bool growable = #C2}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
- return core::List::filled<self::E16b% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#empty#tearOff<unrelated T extends core::Object? = dynamic>({core::bool growable = #C2}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
return core::List::empty<self::E16b% /* erasure=invalid-type, declared=! */>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16b% /* erasure=invalid-type, declared=! */ fill, {core::bool growable = #C2}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
+ return core::List::filled<self::E16b% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#from#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements, {core::bool growable = #C3}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
return core::List::from<self::E16b% /* erasure=invalid-type, declared=! */>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#of#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<self::E16b% /* erasure=invalid-type, declared=! */> elements, {core::bool growable = #C3}) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
@@ -555,10 +555,10 @@
return core::List::generate<self::E16b% /* erasure=invalid-type, declared=! */>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16a#unmodifiable#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements) → core::List<self::E16b% /* erasure=invalid-type, declared=! */>
return core::List::unmodifiable<self::E16b% /* erasure=invalid-type, declared=! */>(elements);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16a% /* erasure=invalid-type, declared=! */ fill, {core::bool growable = #C2}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
- return core::List::filled<self::E16a% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#empty#tearOff<unrelated T extends core::Object? = dynamic>({core::bool growable = #C2}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
return core::List::empty<self::E16a% /* erasure=invalid-type, declared=! */>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#filled#tearOff<unrelated T extends core::Object? = dynamic>(core::int length, self::E16a% /* erasure=invalid-type, declared=! */ fill, {core::bool growable = #C2}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
+ return core::List::filled<self::E16a% /* erasure=invalid-type, declared=! */>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#from#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements, {core::bool growable = #C3}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
return core::List::from<self::E16a% /* erasure=invalid-type, declared=! */>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#of#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<self::E16a% /* erasure=invalid-type, declared=! */> elements, {core::bool growable = #C3}) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
@@ -567,10 +567,10 @@
return core::List::generate<self::E16a% /* erasure=invalid-type, declared=! */>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias16b#unmodifiable#tearOff<unrelated T extends core::Object? = dynamic>(core::Iterable<dynamic> elements) → core::List<self::E16a% /* erasure=invalid-type, declared=! */>
return core::List::unmodifiable<self::E16a% /* erasure=invalid-type, declared=! */>(elements);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#filled#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias23#filled#tearOff::T% fill, {core::bool growable = #C2}) → core::List<self::_#Alias23#filled#tearOff::T%>
- return core::List::filled<self::_#Alias23#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#empty#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>({core::bool growable = #C2}) → core::List<self::_#Alias23#empty#tearOff::T%>
return core::List::empty<self::_#Alias23#empty#tearOff::T%>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#filled#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias23#filled#tearOff::T% fill, {core::bool growable = #C2}) → core::List<self::_#Alias23#filled#tearOff::T%>
+ return core::List::filled<self::_#Alias23#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#from#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::Iterable<dynamic> elements, {core::bool growable = #C3}) → core::List<self::_#Alias23#from#tearOff::T%>
return core::List::from<self::_#Alias23#from#tearOff::T%>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#of#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::Iterable<self::_#Alias23#of#tearOff::T%> elements, {core::bool growable = #C3}) → core::List<self::_#Alias23#of#tearOff::T%>
@@ -579,10 +579,10 @@
return core::List::generate<self::_#Alias23#generate#tearOff::T%>(length, generator, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias23#unmodifiable#tearOff<T extends self::E23% /* erasure=invalid-type, declared=! */>(core::Iterable<dynamic> elements) → core::List<self::_#Alias23#unmodifiable#tearOff::T%>
return core::List::unmodifiable<self::_#Alias23#unmodifiable#tearOff::T%>(elements);
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#filled#tearOff<T extends self::E24<self::_#Alias24#filled#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias24#filled#tearOff::T% fill, {core::bool growable = #C2}) → core::List<self::_#Alias24#filled#tearOff::T%>
- return core::List::filled<self::_#Alias24#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#empty#tearOff<T extends self::E24<self::_#Alias24#empty#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>({core::bool growable = #C2}) → core::List<self::_#Alias24#empty#tearOff::T%>
return core::List::empty<self::_#Alias24#empty#tearOff::T%>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#filled#tearOff<T extends self::E24<self::_#Alias24#filled#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::int length, self::_#Alias24#filled#tearOff::T% fill, {core::bool growable = #C2}) → core::List<self::_#Alias24#filled#tearOff::T%>
+ return core::List::filled<self::_#Alias24#filled#tearOff::T%>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#from#tearOff<T extends self::E24<self::_#Alias24#from#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::Iterable<dynamic> elements, {core::bool growable = #C3}) → core::List<self::_#Alias24#from#tearOff::T%>
return core::List::from<self::_#Alias24#from#tearOff::T%>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#Alias24#of#tearOff<T extends self::E24<self::_#Alias24#of#tearOff::T%>% /* erasure=invalid-type, declared=! */ = self::E24<dynamic>% /* erasure=invalid-type, declared=! */>(core::Iterable<self::_#Alias24#of#tearOff::T%> elements, {core::bool growable = #C3}) → core::List<self::_#Alias24#of#tearOff::T%>
diff --git a/pkg/front_end/testcases/general/factory_patch/main.dart.strong.outline.expect b/pkg/front_end/testcases/general/factory_patch/main.dart.strong.outline.expect
index 91a92f6..14561fc 100644
--- a/pkg/front_end/testcases/general/factory_patch/main.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/factory_patch/main.dart.strong.outline.expect
@@ -20,9 +20,11 @@
: self2::Class::defaultValue = defaultValue, super core::Object::•()
;
@_in::patch
- external static factory fact({core::bool defaultValue = true}) → self2::Class;
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact({core::bool defaultValue = true}) → self2::Class
+ ;
@_in::patch
- external static factory constFact({core::bool defaultValue = true}) → self2::Class;
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ constFact({core::bool defaultValue = true}) → self2::Class
+ ;
@_in::patch
static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect({core::bool defaultValue = true}) → self2::Class /* redirection-target: self2::Class::_internal */
return new self2::Class::_internal(defaultValue: defaultValue);
@@ -31,7 +33,7 @@
Extra constant evaluation status:
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:26 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:14:4 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:18:4 -> InstanceConstant(const _Patch{})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:21:4 -> InstanceConstant(const _Patch{})
Extra constant evaluation: evaluated: 7, effectively constant: 4
diff --git a/pkg/front_end/testcases/general/issue47462.dart.strong.expect b/pkg/front_end/testcases/general/issue47462.dart.strong.expect
index aa522f2..7bd3284 100644
--- a/pkg/front_end/testcases/general/issue47462.dart.strong.expect
+++ b/pkg/front_end/testcases/general/issue47462.dart.strong.expect
@@ -22,10 +22,10 @@
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
- return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#empty#tearOff<T extends core::num>({core::bool growable = #C2}) → core::List<self::_#MyList#empty#tearOff::T>
return core::List::empty<self::_#MyList#empty#tearOff::T>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
+ return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#from#tearOff<T extends core::num>(core::Iterable<dynamic> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#from#tearOff::T>
return core::List::from<self::_#MyList#from#tearOff::T>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#of#tearOff<T extends core::num>(core::Iterable<self::_#MyList#of#tearOff::T> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#of#tearOff::T>
diff --git a/pkg/front_end/testcases/general/issue47462.dart.strong.modular.expect b/pkg/front_end/testcases/general/issue47462.dart.strong.modular.expect
index aa522f2..7bd3284 100644
--- a/pkg/front_end/testcases/general/issue47462.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/general/issue47462.dart.strong.modular.expect
@@ -22,10 +22,10 @@
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
- return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#empty#tearOff<T extends core::num>({core::bool growable = #C2}) → core::List<self::_#MyList#empty#tearOff::T>
return core::List::empty<self::_#MyList#empty#tearOff::T>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
+ return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#from#tearOff<T extends core::num>(core::Iterable<dynamic> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#from#tearOff::T>
return core::List::from<self::_#MyList#from#tearOff::T>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#of#tearOff<T extends core::num>(core::Iterable<self::_#MyList#of#tearOff::T> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#of#tearOff::T>
diff --git a/pkg/front_end/testcases/general/issue47462.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue47462.dart.strong.outline.expect
index f14e20f..cb38188 100644
--- a/pkg/front_end/testcases/general/issue47462.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/issue47462.dart.strong.outline.expect
@@ -7,10 +7,10 @@
;
static method expect(dynamic expected, dynamic actual) → dynamic
;
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {has-declared-initializer core::bool growable}) → core::List<self::_#MyList#filled#tearOff::T>
- return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#empty#tearOff<T extends core::num>({has-declared-initializer core::bool growable}) → core::List<self::_#MyList#empty#tearOff::T>
return core::List::empty<self::_#MyList#empty#tearOff::T>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {has-declared-initializer core::bool growable}) → core::List<self::_#MyList#filled#tearOff::T>
+ return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#from#tearOff<T extends core::num>(core::Iterable<dynamic> elements, {has-declared-initializer core::bool growable}) → core::List<self::_#MyList#from#tearOff::T>
return core::List::from<self::_#MyList#from#tearOff::T>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#of#tearOff<T extends core::num>(core::Iterable<self::_#MyList#of#tearOff::T> elements, {has-declared-initializer core::bool growable}) → core::List<self::_#MyList#of#tearOff::T>
diff --git a/pkg/front_end/testcases/general/issue47462.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue47462.dart.strong.transformed.expect
index 4416e69..83d6fbb 100644
--- a/pkg/front_end/testcases/general/issue47462.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue47462.dart.strong.transformed.expect
@@ -22,10 +22,10 @@
if(!(expected =={core::Object::==}{(core::Object) → core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
-static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
- return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#empty#tearOff<T extends core::num>({core::bool growable = #C2}) → core::List<self::_#MyList#empty#tearOff::T>
return core::List::empty<self::_#MyList#empty#tearOff::T>(growable: growable);
+static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#filled#tearOff<T extends core::num>(core::int length, self::_#MyList#filled#tearOff::T fill, {core::bool growable = #C2}) → core::List<self::_#MyList#filled#tearOff::T>
+ return core::List::filled<self::_#MyList#filled#tearOff::T>(length, fill, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#from#tearOff<T extends core::num>(core::Iterable<dynamic> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#from#tearOff::T>
return core::List::from<self::_#MyList#from#tearOff::T>(elements, growable: growable);
static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm/lib/array_patch.dart */ _#MyList#of#tearOff<T extends core::num>(core::Iterable<self::_#MyList#of#tearOff::T> elements, {core::bool growable = #C1}) → core::List<self::_#MyList#of#tearOff::T>
diff --git a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.expect b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.expect
index b93dd24..5a17e7c 100644
--- a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.expect
+++ b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.expect
@@ -161,7 +161,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class5b extends core::Object {
@#C1
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5b /* redirection-target: test::Class5bImpl::• */
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5b
return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:44:23: Error: The constructor function type 'Class5bImpl Function()' isn't a subtype of 'Class5b Function()'.
- 'Class5bImpl' is from 'dart:test'.
- 'Class5b' is from 'dart:test'.
@@ -177,7 +177,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class5c extends core::Object {
@#C1
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5c /* redirection-target: test::Class5cImpl::• */
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5c
return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:53:23: Error: The constructor function type 'Class5cImpl Function()' isn't a subtype of 'Class5c Function()'.
- 'Class5cImpl' is from 'dart:test'.
- 'Class5c' is from 'dart:test'.
@@ -193,7 +193,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class6a<T extends core::Object? = dynamic> extends core::Object {
@#C1
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6a::•::T%) → void f) → test::Class6a<test::Class6a::•::T%> /* redirection-target: test::_Class6aImpl::•<test::Class6a::•::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6a::•::T%) → void f) → test::Class6a<test::Class6a::•::T%>
return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:62:41: Error: The constructor function type '_Class6aImpl<T> Function(void Function(T))' isn't a subtype of 'Class6a<T> Function(void Function(T))'.
- '_Class6aImpl' is from 'dart:test'.
- 'Class6a' is from 'dart:test'.
@@ -209,7 +209,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class6c<T extends core::Object? = dynamic> extends core::Object {
@#C1
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6c::•::T%) → void f) → test::Class6c<test::Class6c::•::T%> /* redirection-target: test::_Class6cImpl::•<test::Class6c::•::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6c::•::T%) → void f) → test::Class6c<test::Class6c::•::T%>
return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:82:41: Error: The constructor function type '_Class6cImpl<T> Function(void Function(T))' isn't a subtype of 'Class6c<T> Function(void Function(T))'.
- '_Class6cImpl' is from 'dart:test'.
- 'Class6c' is from 'dart:test'.
diff --git a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.modular.expect b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.modular.expect
index b93dd24..5a17e7c 100644
--- a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.modular.expect
@@ -161,7 +161,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class5b extends core::Object {
@#C1
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5b /* redirection-target: test::Class5bImpl::• */
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5b
return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:44:23: Error: The constructor function type 'Class5bImpl Function()' isn't a subtype of 'Class5b Function()'.
- 'Class5bImpl' is from 'dart:test'.
- 'Class5b' is from 'dart:test'.
@@ -177,7 +177,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class5c extends core::Object {
@#C1
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5c /* redirection-target: test::Class5cImpl::• */
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5c
return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:53:23: Error: The constructor function type 'Class5cImpl Function()' isn't a subtype of 'Class5c Function()'.
- 'Class5cImpl' is from 'dart:test'.
- 'Class5c' is from 'dart:test'.
@@ -193,7 +193,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class6a<T extends core::Object? = dynamic> extends core::Object {
@#C1
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6a::•::T%) → void f) → test::Class6a<test::Class6a::•::T%> /* redirection-target: test::_Class6aImpl::•<test::Class6a::•::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6a::•::T%) → void f) → test::Class6a<test::Class6a::•::T%>
return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:62:41: Error: The constructor function type '_Class6aImpl<T> Function(void Function(T))' isn't a subtype of 'Class6a<T> Function(void Function(T))'.
- '_Class6aImpl' is from 'dart:test'.
- 'Class6a' is from 'dart:test'.
@@ -209,7 +209,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class6c<T extends core::Object? = dynamic> extends core::Object {
@#C1
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6c::•::T%) → void f) → test::Class6c<test::Class6c::•::T%> /* redirection-target: test::_Class6cImpl::•<test::Class6c::•::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6c::•::T%) → void f) → test::Class6c<test::Class6c::•::T%>
return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:82:41: Error: The constructor function type '_Class6cImpl<T> Function(void Function(T))' isn't a subtype of 'Class6c<T> Function(void Function(T))'.
- '_Class6cImpl' is from 'dart:test'.
- 'Class6c' is from 'dart:test'.
diff --git a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.outline.expect b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.outline.expect
index 166cfb4..1c6875e 100644
--- a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.outline.expect
@@ -93,7 +93,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
class Class5a extends core::Object {
@_in::patch
- external static factory •() → self2::Class5a /* redirection-target: self2::Class5aImpl::• */
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → self2::Class5a /* redirection-target: self2::Class5aImpl::• */
return new self2::Class5aImpl::•();
}
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
@@ -104,8 +104,12 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
class Class5b extends core::Object {
@_in::patch
- external static factory •() → self2::Class5b
- return new self2::Class5bImpl::•();
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → self2::Class5b
+ return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:44:23: Error: The constructor function type 'Class5bImpl Function()' isn't a subtype of 'Class5b Function()'.
+ - 'Class5bImpl' is from 'dart:test'.
+ - 'Class5b' is from 'dart:test'.
+ factory Class5b() = Class5bImpl;
+ ^";
}
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
class Class5bImpl extends core::Object {
@@ -115,8 +119,12 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
class Class5c extends core::Object {
@_in::patch
- external static factory •() → self2::Class5c
- return new self2::Class5cImpl::•();
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → self2::Class5c
+ return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:53:23: Error: The constructor function type 'Class5cImpl Function()' isn't a subtype of 'Class5c Function()'.
+ - 'Class5cImpl' is from 'dart:test'.
+ - 'Class5c' is from 'dart:test'.
+ factory Class5c() = Class5cImpl;
+ ^";
}
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
class Class5cImpl extends core::Object {
@@ -126,20 +134,28 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
class Class6a<T extends core::Object? = dynamic> extends core::Object {
@_in::patch
- external static factory •<T extends core::Object? = dynamic>((self2::Class6a::•::T%) → void f) → self2::Class6a<self2::Class6a::•::T%>
- return new self2::_Class6aImpl::•<self2::Class6a::•::T%>(f);
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((self2::Class6a::•::T%) → void f) → self2::Class6a<self2::Class6a::•::T%>
+ return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:62:41: Error: The constructor function type '_Class6aImpl<T> Function(void Function(T))' isn't a subtype of 'Class6a<T> Function(void Function(T))'.
+ - '_Class6aImpl' is from 'dart:test'.
+ - 'Class6a' is from 'dart:test'.
+ factory Class6a(void Function(T) f) = _Class6aImpl<T>;
+ ^";
}
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
class Class6b<T extends core::Object? = dynamic> extends core::Object {
@_in::patch
- external static factory •<T extends core::Object? = dynamic>((self2::Class6b::•::T%) → void f) → self2::Class6b<self2::Class6b::•::T%> /* redirection-target: self2::_Class6bImpl::•<self2::Class6b::•::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((self2::Class6b::•::T%) → void f) → self2::Class6b<self2::Class6b::•::T%> /* redirection-target: self2::_Class6bImpl::•<self2::Class6b::•::T%>*/
return new self2::_Class6bImpl::•<self2::Class6b::•::T%>(f);
}
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
class Class6c<T extends core::Object? = dynamic> extends core::Object {
@_in::patch
- external static factory •<T extends core::Object? = dynamic>((self2::Class6c::•::T%) → void f) → self2::Class6c<self2::Class6c::•::T%>
- return new self2::_Class6cImpl::•<self2::Class6c::•::T%>(f);
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((self2::Class6c::•::T%) → void f) → self2::Class6c<self2::Class6c::•::T%>
+ return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:82:41: Error: The constructor function type '_Class6cImpl<T> Function(void Function(T))' isn't a subtype of 'Class6c<T> Function(void Function(T))'.
+ - '_Class6cImpl' is from 'dart:test'.
+ - 'Class6c' is from 'dart:test'.
+ factory Class6c(void Function(T) f) = _Class6cImpl<T>;
+ ^";
}
class _Class6aImpl<T extends core::Object? = dynamic> extends core::Object { // from org-dartlang-testcase:///patch_lib.dart
constructor •((self2::_Class6aImpl::T%) → void f) → self2::_Class6aImpl<self2::_Class6aImpl::T%>
@@ -170,18 +186,18 @@
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:26:1 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:29:1 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:32:1 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:31:29 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:34:4 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:38:1 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:41:1 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:39:16 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:43:4 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:47:1 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:50:1 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:46:44 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:52:4 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:56:1 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:59:1 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:54:6 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:61:4 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:69:1 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:71:4 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:79:1 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{})
-Extra constant evaluation: evaluated: 32, effectively constant: 23
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:81:4 -> InstanceConstant(const _Patch{})
+Extra constant evaluation: evaluated: 26, effectively constant: 23
diff --git a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.transformed.expect b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.transformed.expect
index 6d00291..78f2bc7 100644
--- a/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/patch_extends_implements/main.dart.strong.transformed.expect
@@ -161,7 +161,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class5b extends core::Object {
@#C1
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5b /* redirection-target: test::Class5bImpl::• */
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5b
return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:44:23: Error: The constructor function type 'Class5bImpl Function()' isn't a subtype of 'Class5b Function()'.
- 'Class5bImpl' is from 'dart:test'.
- 'Class5b' is from 'dart:test'.
@@ -177,7 +177,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class5c extends core::Object {
@#C1
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5c /* redirection-target: test::Class5cImpl::• */
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → test::Class5c
return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:53:23: Error: The constructor function type 'Class5cImpl Function()' isn't a subtype of 'Class5c Function()'.
- 'Class5cImpl' is from 'dart:test'.
- 'Class5c' is from 'dart:test'.
@@ -193,7 +193,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class6a<T extends core::Object? = dynamic> extends core::Object {
@#C1
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6a::•::T%) → void f) → test::Class6a<test::Class6a::•::T%> /* redirection-target: test::_Class6aImpl::•<test::Class6a::•::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6a::•::T%) → void f) → test::Class6a<test::Class6a::•::T%>
return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:62:41: Error: The constructor function type '_Class6aImpl<T> Function(void Function(T))' isn't a subtype of 'Class6a<T> Function(void Function(T))'.
- '_Class6aImpl' is from 'dart:test'.
- 'Class6a' is from 'dart:test'.
@@ -209,7 +209,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ #C1
class Class6c<T extends core::Object? = dynamic> extends core::Object {
@#C1
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6c::•::T%) → void f) → test::Class6c<test::Class6c::•::T%> /* redirection-target: test::_Class6cImpl::•<test::Class6c::•::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •<T extends core::Object? = dynamic>((test::Class6c::•::T%) → void f) → test::Class6c<test::Class6c::•::T%>
return invalid-expression "pkg/front_end/testcases/general/patch_extends_implements/patch_lib.dart:82:41: Error: The constructor function type '_Class6cImpl<T> Function(void Function(T))' isn't a subtype of 'Class6c<T> Function(void Function(T))'.
- '_Class6cImpl' is from 'dart:test'.
- 'Class6c' is from 'dart:test'.
diff --git a/pkg/front_end/testcases/general/patch_internal/main.dart.strong.outline.expect b/pkg/front_end/testcases/general/patch_internal/main.dart.strong.outline.expect
index 8f6d2b5..df5c7e1 100644
--- a/pkg/front_end/testcases/general/patch_internal/main.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/patch_internal/main.dart.strong.outline.expect
@@ -18,7 +18,7 @@
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
class Class extends core::Object {
@_in::patch
- external static factory •() → self2::Class /* redirection-target: _te::ClassImpl::• */
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ •() → self2::Class /* redirection-target: _te::ClassImpl::• */
return new _te::ClassImpl::•();
}
@@ -37,5 +37,5 @@
Extra constant evaluation status:
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:9:1 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:11:4 -> InstanceConstant(const _Patch{})
Extra constant evaluation: evaluated: 3, effectively constant: 2
diff --git a/pkg/front_end/testcases/general/patching/main.dart.strong.expect b/pkg/front_end/testcases/general/patching/main.dart.strong.expect
index 4c507cb..f6b0e35 100644
--- a/pkg/front_end/testcases/general/patching/main.dart.strong.expect
+++ b/pkg/front_end/testcases/general/patching/main.dart.strong.expect
@@ -57,12 +57,6 @@
: this test::Class::•(value)
;
@#C8
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ factory(core::int value) → test::Class
- return new test::Class::•(value);
- @#C8
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirectingFactory(core::int value) → test::Class /* redirection-target: test::Class::• */
- return new test::Class::•(value);
- @#C8
get /* from org-dartlang-testcase:///patch_lib.dart */ instanceGetter() → core::int
return 42;
@#C8
@@ -72,8 +66,14 @@
return 42;
@#C8
static set /* from org-dartlang-testcase:///patch_lib.dart */ staticSetter(core::int value) → void {}
+ @#C8
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ factory(core::int value) → test::Class
+ return new test::Class::•(value);
static factory /* from org-dartlang-testcase:///patch_lib.dart */ _injectedFactory(core::int value) → test::Class
return new test::Class::•(value);
+ @#C8
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirectingFactory(core::int value) → test::Class /* redirection-target: test::Class::• */
+ return new test::Class::•(value);
static factory /* from org-dartlang-testcase:///patch_lib.dart */ _injectedRedirectingFactory(core::int value) → test::Class /* redirection-target: test::Class::• */
return new test::Class::•(value);
get /* from org-dartlang-testcase:///patch_lib.dart */ _injectedInstanceGetter() → core::int
diff --git a/pkg/front_end/testcases/general/patching/main.dart.strong.modular.expect b/pkg/front_end/testcases/general/patching/main.dart.strong.modular.expect
index 4c507cb..f6b0e35 100644
--- a/pkg/front_end/testcases/general/patching/main.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/general/patching/main.dart.strong.modular.expect
@@ -57,12 +57,6 @@
: this test::Class::•(value)
;
@#C8
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ factory(core::int value) → test::Class
- return new test::Class::•(value);
- @#C8
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirectingFactory(core::int value) → test::Class /* redirection-target: test::Class::• */
- return new test::Class::•(value);
- @#C8
get /* from org-dartlang-testcase:///patch_lib.dart */ instanceGetter() → core::int
return 42;
@#C8
@@ -72,8 +66,14 @@
return 42;
@#C8
static set /* from org-dartlang-testcase:///patch_lib.dart */ staticSetter(core::int value) → void {}
+ @#C8
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ factory(core::int value) → test::Class
+ return new test::Class::•(value);
static factory /* from org-dartlang-testcase:///patch_lib.dart */ _injectedFactory(core::int value) → test::Class
return new test::Class::•(value);
+ @#C8
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirectingFactory(core::int value) → test::Class /* redirection-target: test::Class::• */
+ return new test::Class::•(value);
static factory /* from org-dartlang-testcase:///patch_lib.dart */ _injectedRedirectingFactory(core::int value) → test::Class /* redirection-target: test::Class::• */
return new test::Class::•(value);
get /* from org-dartlang-testcase:///patch_lib.dart */ _injectedInstanceGetter() → core::int
diff --git a/pkg/front_end/testcases/general/patching/main.dart.strong.outline.expect b/pkg/front_end/testcases/general/patching/main.dart.strong.outline.expect
index cf82370..9781a35 100644
--- a/pkg/front_end/testcases/general/patching/main.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/patching/main.dart.strong.outline.expect
@@ -26,11 +26,6 @@
constructor /* from org-dartlang-testcase:///patch_lib.dart */ _injectedRedirecting(core::int value) → self2::Class
;
@_in::patch
- external static factory factory(core::int value) → self2::Class;
- @_in::patch
- external static factory redirectingFactory(core::int value) → self2::Class /* redirection-target: self2::Class::• */
- return new self2::Class::•(value);
- @_in::patch
external get instanceGetter() → core::int;
@_in::patch
external set instanceSetter(core::int value) → void;
@@ -38,8 +33,14 @@
external static get staticGetter() → core::int;
@_in::patch
external static set staticSetter(core::int value) → void;
+ @_in::patch
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ factory(core::int value) → self2::Class
+ ;
static factory /* from org-dartlang-testcase:///patch_lib.dart */ _injectedFactory(core::int value) → self2::Class
;
+ @_in::patch
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirectingFactory(core::int value) → self2::Class /* redirection-target: self2::Class::• */
+ return new self2::Class::•(value);
static factory /* from org-dartlang-testcase:///patch_lib.dart */ _injectedRedirectingFactory(core::int value) → self2::Class /* redirection-target: self2::Class::• */
return new self2::Class::•(value);
get /* from org-dartlang-testcase:///patch_lib.dart */ _injectedInstanceGetter() → core::int
@@ -164,8 +165,8 @@
Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{})
Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{})
Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ (unknown position in org-dartlang-testcase:///origin_lib.dart) -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:75:4 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:80:4 -> InstanceConstant(const _Patch{})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:95:4 -> InstanceConstant(const _Patch{})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:100:4 -> InstanceConstant(const _Patch{})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:113:4 -> InstanceConstant(const _Patch{})
diff --git a/pkg/front_end/testcases/general/patching/main.dart.strong.transformed.expect b/pkg/front_end/testcases/general/patching/main.dart.strong.transformed.expect
index 4c507cb..f6b0e35 100644
--- a/pkg/front_end/testcases/general/patching/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/patching/main.dart.strong.transformed.expect
@@ -57,12 +57,6 @@
: this test::Class::•(value)
;
@#C8
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ factory(core::int value) → test::Class
- return new test::Class::•(value);
- @#C8
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirectingFactory(core::int value) → test::Class /* redirection-target: test::Class::• */
- return new test::Class::•(value);
- @#C8
get /* from org-dartlang-testcase:///patch_lib.dart */ instanceGetter() → core::int
return 42;
@#C8
@@ -72,8 +66,14 @@
return 42;
@#C8
static set /* from org-dartlang-testcase:///patch_lib.dart */ staticSetter(core::int value) → void {}
+ @#C8
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ factory(core::int value) → test::Class
+ return new test::Class::•(value);
static factory /* from org-dartlang-testcase:///patch_lib.dart */ _injectedFactory(core::int value) → test::Class
return new test::Class::•(value);
+ @#C8
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirectingFactory(core::int value) → test::Class /* redirection-target: test::Class::• */
+ return new test::Class::•(value);
static factory /* from org-dartlang-testcase:///patch_lib.dart */ _injectedRedirectingFactory(core::int value) → test::Class /* redirection-target: test::Class::• */
return new test::Class::•(value);
get /* from org-dartlang-testcase:///patch_lib.dart */ _injectedInstanceGetter() → core::int
diff --git a/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.expect b/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.expect
index cf12d53..50bfde7 100644
--- a/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.expect
+++ b/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.expect
@@ -40,10 +40,10 @@
static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::fact::T% value}) → test::Class<test::Class::fact::T%>
return new test::ClassImpl::•<test::Class::fact::T%>(defaultValue: defaultValue, value: value);
@#C13
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect::T% value}) → test::Class<test::Class::redirect::T%> /* redirection-target: test::ClassImpl::•<test::Class::redirect::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::redirect::T% value}) → test::Class<test::Class::redirect::T%> /* redirection-target: test::ClassImpl::•<test::Class::redirect::T%>*/
return new test::ClassImpl::•<test::Class::redirect::T%>(defaultValue: defaultValue, value: value);
@#C13
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect2::T% value}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::redirect2::T% value}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/
return new test::ClassImpl::patched<test::Class::redirect2::T%>(defaultValue: defaultValue, value: value);
}
@/* from org-dartlang-testcase:///patch_lib.dart */ #C13
@@ -59,11 +59,11 @@
}
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#new#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#new#tearOff::T value}) → test::Class<test::_#Alias#new#tearOff::T>
return new test::Class::•<test::_#Alias#new#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#fact#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#fact#tearOff::T value}) → test::Class<test::_#Alias#fact#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#fact#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#fact#tearOff::T value}) → test::Class<test::_#Alias#fact#tearOff::T>
return test::Class::fact<test::_#Alias#fact#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect#tearOff::T value}) → test::Class<test::_#Alias#redirect#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect#tearOff::T value}) → test::Class<test::_#Alias#redirect#tearOff::T>
return test::Class::redirect<test::_#Alias#redirect#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect2#tearOff::T value}) → test::Class<test::_#Alias#redirect2#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect2#tearOff::T value}) → test::Class<test::_#Alias#redirect2#tearOff::T>
return test::Class::redirect2<test::_#Alias#redirect2#tearOff::T>(defaultValue: defaultValue, value: value);
static method _#AliasImpl#new#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#AliasImpl#new#tearOff::T value}) → test::ClassImpl<test::_#AliasImpl#new#tearOff::T>
return new test::ClassImpl::•<test::_#AliasImpl#new#tearOff::T>(defaultValue: defaultValue, value: value);
@@ -85,5 +85,4 @@
#C12 = static-tearoff test::_#AliasImpl#patched#tearOff
#C13 = _in::_Patch {}
#C14 = true
- #C15 = null
}
diff --git a/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.modular.expect b/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.modular.expect
index cf12d53..50bfde7 100644
--- a/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.modular.expect
@@ -40,10 +40,10 @@
static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::fact::T% value}) → test::Class<test::Class::fact::T%>
return new test::ClassImpl::•<test::Class::fact::T%>(defaultValue: defaultValue, value: value);
@#C13
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect::T% value}) → test::Class<test::Class::redirect::T%> /* redirection-target: test::ClassImpl::•<test::Class::redirect::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::redirect::T% value}) → test::Class<test::Class::redirect::T%> /* redirection-target: test::ClassImpl::•<test::Class::redirect::T%>*/
return new test::ClassImpl::•<test::Class::redirect::T%>(defaultValue: defaultValue, value: value);
@#C13
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect2::T% value}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::redirect2::T% value}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/
return new test::ClassImpl::patched<test::Class::redirect2::T%>(defaultValue: defaultValue, value: value);
}
@/* from org-dartlang-testcase:///patch_lib.dart */ #C13
@@ -59,11 +59,11 @@
}
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#new#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#new#tearOff::T value}) → test::Class<test::_#Alias#new#tearOff::T>
return new test::Class::•<test::_#Alias#new#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#fact#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#fact#tearOff::T value}) → test::Class<test::_#Alias#fact#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#fact#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#fact#tearOff::T value}) → test::Class<test::_#Alias#fact#tearOff::T>
return test::Class::fact<test::_#Alias#fact#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect#tearOff::T value}) → test::Class<test::_#Alias#redirect#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect#tearOff::T value}) → test::Class<test::_#Alias#redirect#tearOff::T>
return test::Class::redirect<test::_#Alias#redirect#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect2#tearOff::T value}) → test::Class<test::_#Alias#redirect2#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect2#tearOff::T value}) → test::Class<test::_#Alias#redirect2#tearOff::T>
return test::Class::redirect2<test::_#Alias#redirect2#tearOff::T>(defaultValue: defaultValue, value: value);
static method _#AliasImpl#new#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#AliasImpl#new#tearOff::T value}) → test::ClassImpl<test::_#AliasImpl#new#tearOff::T>
return new test::ClassImpl::•<test::_#AliasImpl#new#tearOff::T>(defaultValue: defaultValue, value: value);
@@ -85,5 +85,4 @@
#C12 = static-tearoff test::_#AliasImpl#patched#tearOff
#C13 = _in::_Patch {}
#C14 = true
- #C15 = null
}
diff --git a/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.outline.expect b/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.outline.expect
index a549ddb..d08f09e 100644
--- a/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.outline.expect
@@ -21,12 +21,13 @@
constructor /* from org-dartlang-testcase:///patch_lib.dart */ •({core::bool defaultValue = true, required self2::Class::T% value}) → self2::Class<self2::Class::T%>
;
@_in::patch
- external static factory fact<T extends core::Object? = dynamic>({core::bool defaultValue = true, required self2::Class::fact::T% value}) → self2::Class<self2::Class::fact::T%>;
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact<T extends core::Object? = dynamic>({core::bool defaultValue = true, required self2::Class::fact::T% value}) → self2::Class<self2::Class::fact::T%>
+ ;
@_in::patch
- external static factory redirect<T extends core::Object? = dynamic>({core::bool defaultValue = null, required self2::Class::redirect::T% value}) → self2::Class<self2::Class::redirect::T%> /* redirection-target: self2::ClassImpl::•<self2::Class::redirect::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = null, required self2::Class::redirect::T% value}) → self2::Class<self2::Class::redirect::T%> /* redirection-target: self2::ClassImpl::•<self2::Class::redirect::T%>*/
return new self2::ClassImpl::•<self2::Class::redirect::T%>(defaultValue: defaultValue, value: value);
@_in::patch
- external static factory redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = null, required self2::Class::redirect2::T% value}) → self2::Class<self2::Class::redirect2::T%> /* redirection-target: self2::ClassImpl::patched<self2::Class::redirect2::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = null, required self2::Class::redirect2::T% value}) → self2::Class<self2::Class::redirect2::T%> /* redirection-target: self2::ClassImpl::patched<self2::Class::redirect2::T%>*/
return new self2::ClassImpl::patched<self2::Class::redirect2::T%>(defaultValue: defaultValue, value: value);
}
@/* from org-dartlang-testcase:///patch_lib.dart */ _in::patch
@@ -39,11 +40,11 @@
}
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#new#tearOff<T extends core::num>({has-declared-initializer core::bool defaultValue, required self2::_#Alias#new#tearOff::T value}) → self2::Class<self2::_#Alias#new#tearOff::T>
return new self2::Class::•<self2::_#Alias#new#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#fact#tearOff<T extends core::num>({has-declared-initializer core::bool defaultValue, required self2::_#Alias#fact#tearOff::T value}) → self2::Class<self2::_#Alias#fact#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#fact#tearOff<T extends core::num>({has-declared-initializer core::bool defaultValue, required self2::_#Alias#fact#tearOff::T value}) → self2::Class<self2::_#Alias#fact#tearOff::T>
return self2::Class::fact<self2::_#Alias#fact#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue, required self2::_#Alias#redirect#tearOff::T value}) → self2::Class<self2::_#Alias#redirect#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue, required self2::_#Alias#redirect#tearOff::T value}) → self2::Class<self2::_#Alias#redirect#tearOff::T>
return self2::Class::redirect<self2::_#Alias#redirect#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue, required self2::_#Alias#redirect2#tearOff::T value}) → self2::Class<self2::_#Alias#redirect2#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue, required self2::_#Alias#redirect2#tearOff::T value}) → self2::Class<self2::_#Alias#redirect2#tearOff::T>
return self2::Class::redirect2<self2::_#Alias#redirect2#tearOff::T>(defaultValue: defaultValue, value: value);
static method _#AliasImpl#new#tearOff<T extends core::num>({has-declared-initializer core::bool defaultValue, required self2::_#AliasImpl#new#tearOff::T value}) → self2::ClassImpl<self2::_#AliasImpl#new#tearOff::T>
return new self2::ClassImpl::•<self2::_#AliasImpl#new#tearOff::T>(defaultValue: defaultValue, value: value);
@@ -54,9 +55,9 @@
Extra constant evaluation status:
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:8:1 -> InstanceConstant(const _Patch{})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:10:4 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:8:27 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:12:21 -> InstanceConstant(const _Patch{})
-Evaluated: StaticGet @ org-dartlang-testcase:///origin_lib.dart:15:10 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:15:4 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:19:4 -> InstanceConstant(const _Patch{})
+Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:22:4 -> InstanceConstant(const _Patch{})
Evaluated: FileUriExpression @ org-dartlang-testcase:///patch_lib.dart:27:1 -> InstanceConstant(const _Patch{})
Evaluated: StaticGet @ org-dartlang-testcase:///patch_lib.dart:29:4 -> InstanceConstant(const _Patch{})
Extra constant evaluation: evaluated: 31, effectively constant: 7
diff --git a/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.transformed.expect b/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.transformed.expect
index cf12d53..50bfde7 100644
--- a/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/tear_off_patch/main.dart.strong.transformed.expect
@@ -40,10 +40,10 @@
static factory /* from org-dartlang-testcase:///patch_lib.dart */ fact<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::fact::T% value}) → test::Class<test::Class::fact::T%>
return new test::ClassImpl::•<test::Class::fact::T%>(defaultValue: defaultValue, value: value);
@#C13
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect::T% value}) → test::Class<test::Class::redirect::T%> /* redirection-target: test::ClassImpl::•<test::Class::redirect::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::redirect::T% value}) → test::Class<test::Class::redirect::T%> /* redirection-target: test::ClassImpl::•<test::Class::redirect::T%>*/
return new test::ClassImpl::•<test::Class::redirect::T%>(defaultValue: defaultValue, value: value);
@#C13
- static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C15, required test::Class::redirect2::T% value}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/
+ static factory /* from org-dartlang-testcase:///patch_lib.dart */ redirect2<T extends core::Object? = dynamic>({core::bool defaultValue = #C14, required test::Class::redirect2::T% value}) → test::Class<test::Class::redirect2::T%> /* redirection-target: test::ClassImpl::patched<test::Class::redirect2::T%>*/
return new test::ClassImpl::patched<test::Class::redirect2::T%>(defaultValue: defaultValue, value: value);
}
@/* from org-dartlang-testcase:///patch_lib.dart */ #C13
@@ -59,11 +59,11 @@
}
static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#new#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#new#tearOff::T value}) → test::Class<test::_#Alias#new#tearOff::T>
return new test::Class::•<test::_#Alias#new#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#fact#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#fact#tearOff::T value}) → test::Class<test::_#Alias#fact#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#fact#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#fact#tearOff::T value}) → test::Class<test::_#Alias#fact#tearOff::T>
return test::Class::fact<test::_#Alias#fact#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect#tearOff::T value}) → test::Class<test::_#Alias#redirect#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect#tearOff::T value}) → test::Class<test::_#Alias#redirect#tearOff::T>
return test::Class::redirect<test::_#Alias#redirect#tearOff::T>(defaultValue: defaultValue, value: value);
-static method _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect2#tearOff::T value}) → test::Class<test::_#Alias#redirect2#tearOff::T>
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _#Alias#redirect2#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#Alias#redirect2#tearOff::T value}) → test::Class<test::_#Alias#redirect2#tearOff::T>
return test::Class::redirect2<test::_#Alias#redirect2#tearOff::T>(defaultValue: defaultValue, value: value);
static method _#AliasImpl#new#tearOff<T extends core::num>({core::bool defaultValue = #C14, required test::_#AliasImpl#new#tearOff::T value}) → test::ClassImpl<test::_#AliasImpl#new#tearOff::T>
return new test::ClassImpl::•<test::_#AliasImpl#new#tearOff::T>(defaultValue: defaultValue, value: value);
@@ -85,5 +85,4 @@
#C12 = static-tearoff test::_#AliasImpl#patched#tearOff
#C13 = _in::_Patch {}
#C14 = true
- #C15 = null
}