Version 2.18.0-237.0.dev
Merge commit '414d5d3836fcc8b6c63d36ad5d6b9d0930688a65' into 'dev'
diff --git a/pkg/front_end/lib/src/fasta/builder/builder.dart b/pkg/front_end/lib/src/fasta/builder/builder.dart
index 7b208f1..347694c 100644
--- a/pkg/front_end/lib/src/fasta/builder/builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/builder.dart
@@ -197,9 +197,6 @@
/// Applies [patch] to this declaration.
void applyPatch(Builder patch);
- /// Returns the number of patches that was finished.
- int finishPatch();
-
/// Return `true` if this builder is a duplicate of another with the same
/// name. This is `false` for the builder first declared amongst duplicates.
bool get isDuplicate;
@@ -295,11 +292,5 @@
}
@override
- int finishPatch() {
- if (!isPatch) return 0;
- unsupported("${runtimeType}.finishPatch", charOffset, fileUri);
- }
-
- @override
bool get isDuplicate => next != null;
}
diff --git a/pkg/front_end/lib/src/fasta/incremental_compiler.dart b/pkg/front_end/lib/src/fasta/incremental_compiler.dart
index be3c4cf..c0848ae 100644
--- a/pkg/front_end/lib/src/fasta/incremental_compiler.dart
+++ b/pkg/front_end/lib/src/fasta/incremental_compiler.dart
@@ -1996,7 +1996,7 @@
}
}
- debugLibrary.build(lastGoodKernelTarget.loader.coreLibrary,
+ debugLibrary.buildOutlineNodes(lastGoodKernelTarget.loader.coreLibrary,
modifyTarget: false);
Expression compiledExpression = await lastGoodKernelTarget.loader
.buildExpression(
diff --git a/pkg/front_end/lib/src/fasta/kernel/augmentation_lowering.dart b/pkg/front_end/lib/src/fasta/kernel/augmentation_lowering.dart
new file mode 100644
index 0000000..67ba682
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/kernel/augmentation_lowering.dart
@@ -0,0 +1,19 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:kernel/ast.dart';
+
+const String _augmentedNamePrefix = '_#';
+const String _augmentedNameSuffix = '#augment';
+
+/// Creates the synthesized name to use for the [index]th augmented member by
+/// the given [name] in [library].
+Name augmentedName(String name, Library library, int index) {
+ return new Name(
+ '$_augmentedNamePrefix'
+ '${name.isEmpty ? 'new' : name}'
+ '$_augmentedNameSuffix'
+ '$index',
+ library);
+}
diff --git a/pkg/front_end/lib/src/fasta/kernel/combined_member_signature.dart b/pkg/front_end/lib/src/fasta/kernel/combined_member_signature.dart
index 53d9f3d..0139e82 100644
--- a/pkg/front_end/lib/src/fasta/kernel/combined_member_signature.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/combined_member_signature.dart
@@ -538,7 +538,7 @@
if (copyLocation) {
fileUri = member.fileUri;
startFileOffset =
- member is Procedure ? member.startFileOffset : member.fileOffset;
+ member is Procedure ? member.fileStartOffset : member.fileOffset;
fileOffset = member.fileOffset;
} else {
fileUri = enclosingClass.fileUri;
@@ -555,7 +555,7 @@
stubKind: ProcedureStubKind.MemberSignature,
stubTarget: member.memberSignatureOrigin ?? member,
)
- ..startFileOffset = startFileOffset
+ ..fileStartOffset = startFileOffset
..fileOffset = fileOffset
..isNonNullableByDefault = containsNnbdTypes
..parent = enclosingClass;
@@ -585,7 +585,7 @@
if (copyLocation) {
fileUri = member.fileUri;
startFileOffset =
- member is Procedure ? member.startFileOffset : member.fileOffset;
+ member is Procedure ? member.fileStartOffset : member.fileOffset;
fileOffset = member.fileOffset;
} else {
fileUri = enclosingClass.fileUri;
@@ -611,7 +611,7 @@
stubKind: ProcedureStubKind.MemberSignature,
stubTarget: member.memberSignatureOrigin ?? member,
)
- ..startFileOffset = startFileOffset
+ ..fileStartOffset = startFileOffset
..fileOffset = fileOffset
..isNonNullableByDefault = containsNnbdTypes
..parent = enclosingClass;
@@ -630,7 +630,7 @@
int fileOffset;
if (copyLocation) {
fileUri = procedure.fileUri;
- startFileOffset = procedure.startFileOffset;
+ startFileOffset = procedure.fileStartOffset;
fileOffset = procedure.fileOffset;
} else {
fileUri = enclosingClass.fileUri;
@@ -690,7 +690,7 @@
stubKind: ProcedureStubKind.MemberSignature,
stubTarget: procedure.memberSignatureOrigin ?? procedure,
)
- ..startFileOffset = startFileOffset
+ ..fileStartOffset = startFileOffset
..fileOffset = fileOffset
..isNonNullableByDefault = containsNnbdTypes
..parent = enclosingClass;
diff --git a/pkg/front_end/lib/src/fasta/kernel/constructor_tearoff_lowering.dart b/pkg/front_end/lib/src/fasta/kernel/constructor_tearoff_lowering.dart
index 77159ce..1e6ea3e 100644
--- a/pkg/front_end/lib/src/fasta/kernel/constructor_tearoff_lowering.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/constructor_tearoff_lowering.dart
@@ -295,7 +295,7 @@
/// The [declarationConstructor] is the [Procedure] for the origin constructor
/// and [implementationConstructorFunctionNode] is the [FunctionNode] for the
/// implementation constructor. If the constructor is patched, these are not
-/// connected until [Builder.finishPatch].
+/// connected until [Builder.buildBodyNodes].
FreshTypeParameters buildRedirectingFactoryTearOffProcedureParameters(
{required Procedure tearOff,
required Procedure implementationConstructor,
@@ -370,7 +370,7 @@
Name name, Uri fileUri, int fileOffset, Reference? reference) {
return new Procedure(name, ProcedureKind.Method, new FunctionNode(null),
fileUri: fileUri, isStatic: true, isSynthetic: true, reference: reference)
- ..startFileOffset = fileOffset
+ ..fileStartOffset = fileOffset
..fileOffset = fileOffset
..fileEndOffset = fileOffset
..isNonNullableByDefault = libraryBuilder.isNonNullableByDefault;
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_helper.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_helper.dart
index ffbbab7..f5ad8bd 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_helper.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_helper.dart
@@ -325,7 +325,7 @@
// TODO(ahe): restore file-offset once we track both origin and patch file
// URIs. See https://github.com/dart-lang/sdk/issues/31579
origin.fileUri = patch.fileUri;
- origin.startFileOffset = patch.startFileOffset;
+ origin.fileStartOffset = patch.fileStartOffset;
origin.fileOffset = patch.fileOffset;
origin.fileEndOffset = patch.fileEndOffset;
origin.annotations.forEach((m) => m.fileOffset = patch.fileOffset);
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
index 101ed7f..6986604 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -400,7 +400,8 @@
loader.finishTypeVariables(
augmentationLibraries, objectClassBuilder, dynamicType);
for (SourceLibraryBuilder augmentationLibrary in augmentationLibraries) {
- augmentationLibrary.build(loader.coreLibrary, modifyTarget: false);
+ augmentationLibrary.buildOutlineNodes(loader.coreLibrary,
+ modifyTarget: false);
}
loader.resolveConstructors(augmentationLibraries);
}
@@ -471,7 +472,7 @@
loader.createTypeInferenceEngine();
benchmarker?.enterPhase(BenchmarkPhases.outline_buildComponent);
- loader.buildComponent();
+ loader.buildOutlineNodes();
benchmarker?.enterPhase(BenchmarkPhases.outline_installDefaultSupertypes);
installDefaultSupertypes();
@@ -637,7 +638,7 @@
loader.finishNativeMethods();
benchmarker?.enterPhase(BenchmarkPhases.body_finishPatchMethods);
- loader.finishPatchMethods();
+ loader.buildBodyNodes();
benchmarker?.enterPhase(BenchmarkPhases.body_finishAllConstructors);
finishAllConstructors(sourceClasses);
diff --git a/pkg/front_end/lib/src/fasta/kernel/load_library_builder.dart b/pkg/front_end/lib/src/fasta/kernel/load_library_builder.dart
index 7199ba7..dfe1513 100644
--- a/pkg/front_end/lib/src/fasta/kernel/load_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/load_library_builder.dart
@@ -64,7 +64,7 @@
fileUri: parent.library.fileUri,
isStatic: true,
reference: reference)
- ..startFileOffset = charOffset
+ ..fileStartOffset = charOffset
..fileOffset = charOffset
..isNonNullableByDefault = parent.isNonNullableByDefault;
}
diff --git a/pkg/front_end/lib/src/fasta/scope.dart b/pkg/front_end/lib/src/fasta/scope.dart
index f78f458..187af99 100644
--- a/pkg/front_end/lib/src/fasta/scope.dart
+++ b/pkg/front_end/lib/src/fasta/scope.dart
@@ -823,8 +823,14 @@
}
@override
- void buildMembers(void Function(Member, BuiltMemberKind) f) {
- assert(false, "Unexpected call to $runtimeType.buildMembers.");
+ void buildOutlineNodes(void Function(Member, BuiltMemberKind) f) {
+ assert(false, "Unexpected call to $runtimeType.buildOutlineNodes.");
+ }
+
+ @override
+ int buildBodyNodes(void Function(Member, BuiltMemberKind) f) {
+ assert(false, "Unexpected call to $runtimeType.buildBodyNodes.");
+ return 0;
}
@override
diff --git a/pkg/front_end/lib/src/fasta/source/source_class_builder.dart b/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
index d5bf381..593d7b2 100644
--- a/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_class_builder.dart
@@ -182,7 +182,7 @@
} else if (declaration is SourceMemberBuilder) {
SourceMemberBuilder memberBuilder = declaration;
memberBuilder
- .buildMembers((Member member, BuiltMemberKind memberKind) {
+ .buildOutlineNodes((Member member, BuiltMemberKind memberKind) {
member.parent = cls;
if (!memberBuilder.isPatch &&
!memberBuilder.isDuplicate &&
@@ -1390,24 +1390,57 @@
}
}
- @override
- int finishPatch() {
- if (!isPatch) return 0;
-
+ int buildBodyNodes() {
// TODO(ahe): restore file-offset once we track both origin and patch file
// URIs. See https://github.com/dart-lang/sdk/issues/31579
- cls.annotations.forEach((m) => m.fileOffset = origin.cls.fileOffset);
+ if (isPatch) {
+ cls.annotations.forEach((m) => m.fileOffset = origin.cls.fileOffset);
+ }
int count = 0;
- scope.forEach((String name, Builder declaration) {
- count += declaration.finishPatch();
- });
- constructorScope.forEach((String name, Builder declaration) {
- count += declaration.finishPatch();
- });
+
+ void buildMembers(String name, Builder builder) {
+ if (builder.parent != this) {
+ return;
+ }
+ Builder? current = builder;
+ while (current != null) {
+ if (current is SourceMemberBuilder) {
+ count +=
+ current.buildBodyNodes((Member member, BuiltMemberKind kind) {
+ _buildMember(current as SourceMemberBuilder, member, kind);
+ });
+ }
+ current = current.next;
+ }
+ }
+
+ scope.forEach(buildMembers);
+ constructorScope.forEach(buildMembers);
return count;
}
+ void _buildMember(SourceMemberBuilder memberBuilder, Member member,
+ BuiltMemberKind memberKind) {
+ member.parent = cls;
+ if (!memberBuilder.isDuplicate &&
+ !memberBuilder.isConflictingSetter &&
+ !memberBuilder.isConflictingAugmentationMember) {
+ if (member is Procedure) {
+ cls.addProcedure(member);
+ } else if (member is Field) {
+ cls.addField(member);
+ } else if (member is Constructor) {
+ cls.addConstructor(member);
+ } else if (member is RedirectingFactory) {
+ cls.addRedirectingFactory(member);
+ } else {
+ unhandled("${member.runtimeType}", "getMember", member.fileOffset,
+ member.fileUri);
+ }
+ }
+ }
+
/// Return a map whose keys are the supertypes of this [SourceClassBuilder]
/// after expansion of type aliases, if any. For each supertype key, the
/// corresponding value is the type alias which was unaliased in order to
diff --git a/pkg/front_end/lib/src/fasta/source/source_constructor_builder.dart b/pkg/front_end/lib/src/fasta/source/source_constructor_builder.dart
index 148e2b6..be790e8 100644
--- a/pkg/front_end/lib/src/fasta/source/source_constructor_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_constructor_builder.dart
@@ -199,7 +199,7 @@
}
@override
- void buildMembers(void Function(Member, BuiltMemberKind) f) {
+ void buildOutlineNodes(void Function(Member, BuiltMemberKind) f) {
_build();
f(_constructor, BuiltMemberKind.Constructor);
if (_constructorTearOff != null) {
@@ -708,7 +708,7 @@
}
@override
- int finishPatch() {
+ int buildBodyNodes(void Function(Member, BuiltMemberKind) f) {
if (!isPatch) return 0;
_finishPatch();
return 1;
diff --git a/pkg/front_end/lib/src/fasta/source/source_extension_builder.dart b/pkg/front_end/lib/src/fasta/source/source_extension_builder.dart
index 578747e..874a967 100644
--- a/pkg/front_end/lib/src/fasta/source/source_extension_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_extension_builder.dart
@@ -101,6 +101,7 @@
ClassBuilder objectClassBuilder =
coreLibrary.lookupLocalMember('Object', required: true) as ClassBuilder;
+
void buildBuilders(String name, Builder? declaration) {
while (declaration != null) {
Builder? objectGetter = objectClassBuilder.lookupLocalMember(name);
@@ -125,64 +126,9 @@
} else if (declaration is SourceMemberBuilder) {
SourceMemberBuilder memberBuilder = declaration;
memberBuilder
- .buildMembers((Member member, BuiltMemberKind memberKind) {
- if (addMembersToLibrary &&
- !memberBuilder.isPatch &&
- !memberBuilder.isDuplicate &&
- !memberBuilder.isConflictingSetter) {
- ExtensionMemberKind kind;
- String name = memberBuilder.name;
- switch (memberKind) {
- case BuiltMemberKind.Constructor:
- case BuiltMemberKind.RedirectingFactory:
- case BuiltMemberKind.Field:
- case BuiltMemberKind.Method:
- unhandled(
- "${member.runtimeType}:${memberKind}",
- "buildMembers",
- memberBuilder.charOffset,
- memberBuilder.fileUri);
- case BuiltMemberKind.ExtensionField:
- case BuiltMemberKind.LateIsSetField:
- kind = ExtensionMemberKind.Field;
- break;
- case BuiltMemberKind.ExtensionMethod:
- kind = ExtensionMemberKind.Method;
- break;
- case BuiltMemberKind.ExtensionGetter:
- case BuiltMemberKind.LateGetter:
- kind = ExtensionMemberKind.Getter;
- break;
- case BuiltMemberKind.ExtensionSetter:
- case BuiltMemberKind.LateSetter:
- kind = ExtensionMemberKind.Setter;
- break;
- case BuiltMemberKind.ExtensionOperator:
- kind = ExtensionMemberKind.Operator;
- break;
- case BuiltMemberKind.ExtensionTearOff:
- kind = ExtensionMemberKind.TearOff;
- break;
- }
- // ignore: unnecessary_null_comparison
- assert(kind != null);
- Reference memberReference;
- if (member is Field) {
- libraryBuilder.library.addField(member);
- memberReference = member.fieldReference;
- } else if (member is Procedure) {
- libraryBuilder.library.addProcedure(member);
- memberReference = member.reference;
- } else {
- unhandled("${member.runtimeType}", "buildBuilders",
- member.fileOffset, member.fileUri);
- }
- extension.members.add(new ExtensionMemberDescriptor(
- name: new Name(name, libraryBuilder.library),
- member: memberReference,
- isStatic: memberBuilder.isStatic,
- kind: kind));
- }
+ .buildOutlineNodes((Member member, BuiltMemberKind memberKind) {
+ _buildMember(memberBuilder, member, memberKind,
+ addMembersToLibrary: addMembersToLibrary);
});
} else {
unhandled("${declaration.runtimeType}", "buildBuilders",
@@ -197,6 +143,65 @@
return _extension;
}
+ void _buildMember(SourceMemberBuilder memberBuilder, Member member,
+ BuiltMemberKind memberKind,
+ {required bool addMembersToLibrary}) {
+ if (addMembersToLibrary &&
+ !memberBuilder.isPatch &&
+ !memberBuilder.isDuplicate &&
+ !memberBuilder.isConflictingSetter) {
+ ExtensionMemberKind kind;
+ String name = memberBuilder.name;
+ switch (memberKind) {
+ case BuiltMemberKind.Constructor:
+ case BuiltMemberKind.RedirectingFactory:
+ case BuiltMemberKind.Field:
+ case BuiltMemberKind.Method:
+ unhandled("${member.runtimeType}:${memberKind}", "buildMembers",
+ memberBuilder.charOffset, memberBuilder.fileUri);
+ case BuiltMemberKind.ExtensionField:
+ case BuiltMemberKind.LateIsSetField:
+ kind = ExtensionMemberKind.Field;
+ break;
+ case BuiltMemberKind.ExtensionMethod:
+ kind = ExtensionMemberKind.Method;
+ break;
+ case BuiltMemberKind.ExtensionGetter:
+ case BuiltMemberKind.LateGetter:
+ kind = ExtensionMemberKind.Getter;
+ break;
+ case BuiltMemberKind.ExtensionSetter:
+ case BuiltMemberKind.LateSetter:
+ kind = ExtensionMemberKind.Setter;
+ break;
+ case BuiltMemberKind.ExtensionOperator:
+ kind = ExtensionMemberKind.Operator;
+ break;
+ case BuiltMemberKind.ExtensionTearOff:
+ kind = ExtensionMemberKind.TearOff;
+ break;
+ }
+ // ignore: unnecessary_null_comparison
+ assert(kind != null);
+ Reference memberReference;
+ if (member is Field) {
+ libraryBuilder.library.addField(member);
+ memberReference = member.fieldReference;
+ } else if (member is Procedure) {
+ libraryBuilder.library.addProcedure(member);
+ memberReference = member.reference;
+ } else {
+ unhandled("${member.runtimeType}", "buildBuilders", member.fileOffset,
+ member.fileUri);
+ }
+ extension.members.add(new ExtensionMemberDescriptor(
+ name: new Name(name, libraryBuilder.library),
+ member: memberReference,
+ isStatic: memberBuilder.isStatic,
+ kind: kind));
+ }
+ }
+
@override
void applyPatch(Builder patch) {
if (patch is SourceExtensionBuilder) {
@@ -230,13 +235,19 @@
}
}
- @override
- int finishPatch() {
- if (!isPatch) return 0;
-
+ int buildBodyNodes({required bool addMembersToLibrary}) {
int count = 0;
- scope.forEach((String name, Builder declaration) {
- count += declaration.finishPatch();
+ scope.forEach((String name, Builder? declaration) {
+ while (declaration != null) {
+ if (declaration is SourceMemberBuilder) {
+ count +=
+ declaration.buildBodyNodes((Member member, BuiltMemberKind kind) {
+ _buildMember(declaration as SourceMemberBuilder, member, kind,
+ addMembersToLibrary: addMembersToLibrary);
+ });
+ }
+ declaration = declaration.next;
+ }
});
return count;
}
diff --git a/pkg/front_end/lib/src/fasta/source/source_factory_builder.dart b/pkg/front_end/lib/src/fasta/source/source_factory_builder.dart
index ec7ffb5..c90fe39 100644
--- a/pkg/front_end/lib/src/fasta/source/source_factory_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_factory_builder.dart
@@ -75,7 +75,7 @@
new FunctionNode(null),
fileUri: libraryBuilder.fileUri,
reference: procedureReference)
- ..startFileOffset = startCharOffset
+ ..fileStartOffset = startCharOffset
..fileOffset = charOffset
..fileEndOffset = charEndOffset
..isNonNullableByDefault = libraryBuilder.isNonNullableByDefault,
@@ -132,7 +132,7 @@
Iterable<Member> get exportedMembers => [_procedure];
@override
- void buildMembers(void Function(Member, BuiltMemberKind) f) {
+ void buildOutlineNodes(void Function(Member, BuiltMemberKind) f) {
_build();
f(_procedureInternal, BuiltMemberKind.Method);
if (_factoryTearOff != null) {
@@ -236,7 +236,7 @@
}
@override
- int finishPatch() {
+ int buildBodyNodes(void Function(Member, BuiltMemberKind) f) {
if (!isPatch) return 0;
_finishPatch();
return 1;
@@ -338,7 +338,7 @@
}
@override
- void buildMembers(void Function(Member, BuiltMemberKind) f) {
+ void buildOutlineNodes(void Function(Member, BuiltMemberKind) f) {
_build();
f(_procedureInternal, BuiltMemberKind.RedirectingFactory);
if (_factoryTearOff != null) {
diff --git a/pkg/front_end/lib/src/fasta/source/source_field_builder.dart b/pkg/front_end/lib/src/fasta/source/source_field_builder.dart
index b05b07b..1fccff2 100644
--- a/pkg/front_end/lib/src/fasta/source/source_field_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_field_builder.dart
@@ -374,7 +374,7 @@
Iterable<Member> get exportedMembers => _fieldEncoding.exportedMembers;
@override
- void buildMembers(void Function(Member, BuiltMemberKind) f) {
+ void buildOutlineNodes(void Function(Member, BuiltMemberKind) f) {
_build();
_fieldEncoding.registerMembers(libraryBuilder, this, f);
}
@@ -531,6 +531,11 @@
SourceLibraryBuilder library, TypeEnvironment typeEnvironment) {
library.checkTypesInField(this, typeEnvironment);
}
+
+ @override
+ int buildBodyNodes(void Function(Member, BuiltMemberKind) f) {
+ return 0;
+ }
}
/// Strategy pattern for creating different encodings of a declared field.
diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
index db9853c..5a845c0e 100644
--- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
@@ -1038,7 +1038,8 @@
}
/// Builds the core AST structure of this library as needed for the outline.
- Library build(LibraryBuilder coreLibrary, {bool modifyTarget: true}) {
+ Library buildOutlineNodes(LibraryBuilder coreLibrary,
+ {bool modifyTarget: true}) {
// TODO(johnniwinther): Avoid the need to process patch libraries before
// the origin. Currently, settings performed by the patch are overridden
// by the origin. For instance, the `Map` class is abstract in the origin
@@ -1048,7 +1049,7 @@
Iterable<SourceLibraryBuilder>? patches = this.patchLibraries;
if (patches != null) {
for (SourceLibraryBuilder patchLibrary in patches) {
- patchLibrary.build(coreLibrary, modifyTarget: modifyTarget);
+ patchLibrary.buildOutlineNodes(coreLibrary, modifyTarget: modifyTarget);
}
}
@@ -1058,7 +1059,7 @@
Iterator<Builder> iterator = this.iterator;
while (iterator.moveNext()) {
- buildBuilder(iterator.current, coreLibrary);
+ _buildOutlineNodes(iterator.current, coreLibrary);
}
if (!modifyTarget) return library;
@@ -3050,7 +3051,7 @@
}
/// Builds the core AST structures for [declaration] needed for the outline.
- void buildBuilder(Builder declaration, LibraryBuilder coreLibrary) {
+ void _buildOutlineNodes(Builder declaration, LibraryBuilder coreLibrary) {
String findDuplicateSuffix(Builder declaration) {
if (declaration.next != null) {
int count = 0;
@@ -3077,35 +3078,15 @@
library.addExtension(extension);
}
} else if (declaration is SourceMemberBuilder) {
- declaration.buildMembers((Member member, BuiltMemberKind memberKind) {
- if (member is Field) {
- member.isStatic = true;
- if (!declaration.isPatch && !declaration.isDuplicate) {
- library.addField(member);
- }
- } else if (member is Procedure) {
- member.isStatic = true;
- if (!declaration.isPatch &&
- !declaration.isDuplicate &&
- !declaration.isConflictingSetter) {
- library.addProcedure(member);
- }
- } else {
- unhandled("${member.runtimeType}:${memberKind}", "buildBuilder",
- declaration.charOffset, declaration.fileUri);
- }
+ declaration
+ .buildOutlineNodes((Member member, BuiltMemberKind memberKind) {
+ _addMemberToLibrary(declaration, member, memberKind);
});
} else if (declaration is SourceTypeAliasBuilder) {
Typedef typedef = declaration.build();
if (!declaration.isPatch && !declaration.isDuplicate) {
library.addTypedef(typedef);
}
- } else if (declaration is SourceEnumBuilder) {
- Class cls = declaration.build(coreLibrary);
- if (!declaration.isPatch) {
- cls.name += findDuplicateSuffix(declaration);
- library.addClass(cls);
- }
} else if (declaration is PrefixBuilder) {
// Ignored. Kernel doesn't represent prefixes.
return;
@@ -3118,6 +3099,26 @@
}
}
+ void _addMemberToLibrary(SourceMemberBuilder declaration, Member member,
+ BuiltMemberKind memberKind) {
+ if (member is Field) {
+ member.isStatic = true;
+ if (!declaration.isPatch && !declaration.isDuplicate) {
+ library.addField(member);
+ }
+ } else if (member is Procedure) {
+ member.isStatic = true;
+ if (!declaration.isPatch &&
+ !declaration.isDuplicate &&
+ !declaration.isConflictingSetter) {
+ library.addProcedure(member);
+ }
+ } else {
+ unhandled("${member.runtimeType}:${memberKind}", "_buildMember",
+ declaration.charOffset, declaration.fileUri);
+ }
+ }
+
void addNativeDependency(String nativeImportPath) {
MemberBuilder constructor = loader.getNativeAnnotation();
Arguments arguments =
@@ -3934,20 +3935,43 @@
}
}
- int finishPatchMethods() {
+ /// Builds the AST nodes needed for the full compilation.
+ ///
+ /// This includes patching member bodies and adding augmented members.
+ int buildBodyNodes() {
int count = 0;
Iterable<SourceLibraryBuilder>? patches = this.patchLibraries;
if (patches != null) {
for (SourceLibraryBuilder patchLibrary in patches) {
- count += patchLibrary.finishPatchMethods();
+ count += patchLibrary.buildBodyNodes();
}
}
- if (isPatch) {
- Iterator<Builder> iterator = this.iterator;
- while (iterator.moveNext()) {
- count += iterator.current.finishPatch();
+ Iterator<Builder> iterator = this.iterator;
+ while (iterator.moveNext()) {
+ Builder builder = iterator.current;
+ if (builder is SourceMemberBuilder) {
+ count +=
+ builder.buildBodyNodes((Member member, BuiltMemberKind memberKind) {
+ _addMemberToLibrary(builder, member, memberKind);
+ });
+ } else if (builder is SourceClassBuilder) {
+ count += builder.buildBodyNodes();
+ } else if (builder is SourceExtensionBuilder) {
+ count +=
+ builder.buildBodyNodes(addMembersToLibrary: !builder.isDuplicate);
+ } else if (builder is SourceClassBuilder) {
+ count += builder.buildBodyNodes();
+ } else if (builder is SourceTypeAliasBuilder) {
+ // Do nothing.
+ } else if (builder is PrefixBuilder) {
+ // Ignored. Kernel doesn't represent prefixes.
+ } else if (builder is BuiltinTypeDeclarationBuilder) {
+ // Nothing needed.
+ } else {
+ unhandled("${builder.runtimeType}", "buildBodyNodes",
+ builder.charOffset, builder.fileUri);
}
}
return count;
diff --git a/pkg/front_end/lib/src/fasta/source/source_loader.dart b/pkg/front_end/lib/src/fasta/source/source_loader.dart
index d3b47de..6e7c3fe 100644
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -1793,10 +1793,10 @@
ticker.logMs("Finished $count native methods");
}
- void finishPatchMethods() {
+ void buildBodyNodes() {
int count = 0;
for (SourceLibraryBuilder library in sourceLibraryBuilders) {
- count += library.finishPatchMethods();
+ count += library.buildBodyNodes();
}
ticker.logMs("Finished $count patch methods");
}
@@ -2020,9 +2020,9 @@
}
/// Builds the core AST structure needed for the outline of the component.
- void buildComponent() {
+ void buildOutlineNodes() {
for (SourceLibraryBuilder library in sourceLibraryBuilders) {
- Library target = library.build(coreLibrary);
+ Library target = library.buildOutlineNodes(coreLibrary);
if (library.referencesFrom != null) {
referenceFromIndex ??= new ReferenceFromIndex();
referenceFromIndex!
diff --git a/pkg/front_end/lib/src/fasta/source/source_member_builder.dart b/pkg/front_end/lib/src/fasta/source/source_member_builder.dart
index 429809d..822ea53 100644
--- a/pkg/front_end/lib/src/fasta/source/source_member_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_member_builder.dart
@@ -29,13 +29,18 @@
SourceLibraryBuilder get libraryBuilder;
/// Builds the core AST structures for this member as needed for the outline.
- void buildMembers(void Function(Member, BuiltMemberKind) f);
+ void buildOutlineNodes(void Function(Member, BuiltMemberKind) f);
void buildOutlineExpressions(
ClassHierarchy classHierarchy,
List<DelayedActionPerformer> delayedActionPerformers,
List<DelayedDefaultValueCloner> delayedDefaultValueCloners);
+ /// Builds the AST nodes for this member as needed for the full compilation.
+ ///
+ /// This includes adding patched bodies and augmented members.
+ int buildBodyNodes(void Function(Member, BuiltMemberKind) f);
+
/// Checks the variance of type parameters [sourceClassBuilder] used in the
/// signature of this member.
void checkVariance(
@@ -60,11 +65,16 @@
retainDataForTesting ? new MemberDataForTesting() : null;
@override
- void buildMembers(void Function(Member, BuiltMemberKind) f) {
+ void buildOutlineNodes(void Function(Member, BuiltMemberKind) f) {
assert(false, "Unexpected call to $runtimeType.buildMembers.");
}
@override
+ int buildBodyNodes(void Function(Member, BuiltMemberKind) f) {
+ return 0;
+ }
+
+ @override
bool get isAugmentation => false;
@override
diff --git a/pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart b/pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart
index 9588563..e6686bc 100644
--- a/pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_procedure_builder.dart
@@ -14,6 +14,7 @@
import '../builder/procedure_builder.dart';
import '../builder/type_builder.dart';
import '../builder/type_variable_builder.dart';
+import '../kernel/augmentation_lowering.dart';
import '../kernel/hierarchy/class_member.dart';
import '../kernel/hierarchy/members_builder.dart';
import '../kernel/kernel_helper.dart';
@@ -96,7 +97,7 @@
fileUri: libraryBuilder.fileUri,
reference: procedureReference,
isSynthetic: isSynthetic)
- ..startFileOffset = startCharOffset
+ ..fileStartOffset = startCharOffset
..fileOffset = charOffset
..fileEndOffset = charEndOffset
..isNonNullableByDefault = libraryBuilder.isNonNullableByDefault;
@@ -231,7 +232,7 @@
Iterable<Member> get exportedMembers => [procedure];
@override
- void buildMembers(void Function(Member, BuiltMemberKind) f) {
+ void buildOutlineNodes(void Function(Member, BuiltMemberKind) f) {
_build();
if (isExtensionMethod) {
switch (kind) {
@@ -467,11 +468,33 @@
}
@override
- int finishPatch() {
- if (!isPatch) return 0;
+ int buildBodyNodes(void Function(Member, BuiltMemberKind) f) {
+ List<SourceProcedureBuilder>? patches = _patches;
+ if (patches != null) {
+ Procedure augmentedProcedure = _procedure;
+ int index = 0;
+ for (SourceProcedureBuilder patch in patches) {
+ if (!augmentedProcedure.isExternal && !augmentedProcedure.isAbstract) {
+ Procedure newProcedure = new Procedure(
+ augmentedName(augmentedProcedure.name.text,
+ libraryBuilder.library, index++),
+ augmentedProcedure.kind,
+ augmentedProcedure.function,
+ fileUri: augmentedProcedure.fileUri)
+ ..fileOffset = augmentedProcedure.fileOffset
+ ..fileEndOffset = augmentedProcedure.fileEndOffset
+ ..fileStartOffset = augmentedProcedure.fileStartOffset
+ ..signatureType = augmentedProcedure.signatureType
+ ..flags = augmentedProcedure.flags;
+ f(newProcedure, BuiltMemberKind.Method);
+ }
+ augmentedProcedure = patch.actualProcedure;
+ }
+ finishProcedurePatch(procedure, augmentedProcedure);
- finishProcedurePatch(origin.procedure, _procedure);
- return 1;
+ return patches.length;
+ }
+ return 0;
}
@override
diff --git a/pkg/front_end/test/incremental_suite.dart b/pkg/front_end/test/incremental_suite.dart
index 78f31b4..da9478c 100644
--- a/pkg/front_end/test/incremental_suite.dart
+++ b/pkg/front_end/test/incremental_suite.dart
@@ -1844,6 +1844,26 @@
StringBuffer s = new StringBuffer();
s.write(componentToString(c));
+ bool printedConstantCoverageHeader = false;
+ for (Source source in component.uriToSource.values) {
+ if (source.importUri?.scheme == "dart") continue;
+
+ if (source.constantCoverageConstructors != null &&
+ source.constantCoverageConstructors!.isNotEmpty) {
+ if (!printedConstantCoverageHeader) {
+ s.writeln("");
+ s.writeln("");
+ s.writeln("Constructor coverage from constants:");
+ printedConstantCoverageHeader = true;
+ }
+ s.writeln("${source.fileUri}:");
+ for (Reference reference in source.constantCoverageConstructors!) {
+ s.writeln("- ${reference.node} (from ${reference.node?.location})");
+ }
+ s.writeln("");
+ }
+ }
+
if (dartUris.isNotEmpty) {
s.writeln("");
s.writeln("And ${dartUris.length} platform libraries:");
diff --git a/pkg/front_end/test/outline_extractor_suite.dart b/pkg/front_end/test/outline_extractor_suite.dart
index 42adf8c..a41a076 100644
--- a/pkg/front_end/test/outline_extractor_suite.dart
+++ b/pkg/front_end/test/outline_extractor_suite.dart
@@ -248,7 +248,7 @@
}
@override
- bool checkProcedure_startFileOffset(
+ bool checkProcedure_fileStartOffset(
EquivalenceVisitor visitor, Procedure node, Procedure other) {
return true;
}
diff --git a/pkg/front_end/test/outline_extractor_tester.dart b/pkg/front_end/test/outline_extractor_tester.dart
index 01fbca9..c77a98a 100644
--- a/pkg/front_end/test/outline_extractor_tester.dart
+++ b/pkg/front_end/test/outline_extractor_tester.dart
@@ -236,7 +236,7 @@
}
@override
- bool checkProcedure_startFileOffset(
+ bool checkProcedure_fileStartOffset(
EquivalenceVisitor visitor, Procedure node, Procedure other) {
return true;
}
diff --git a/pkg/front_end/test/spell_checking_list_code.txt b/pkg/front_end/test/spell_checking_list_code.txt
index eaad1d4..e401254 100644
--- a/pkg/front_end/test/spell_checking_list_code.txt
+++ b/pkg/front_end/test/spell_checking_list_code.txt
@@ -82,6 +82,7 @@
augment
augmentation
augmentations
+augmented
augmenting
augments
auto
diff --git a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.1.expect
index 8014659..f9945e5 100644
--- a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.1.expect
@@ -49,3 +49,15 @@
#C1 = lib::A {}
#C2 = lib::C {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- C. (from org-dartlang-test:///lib.dart:11:9)
+- B. (from org-dartlang-test:///lib.dart:7:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
+org-dartlang-test:///lib.dart:
+- A. (from org-dartlang-test:///lib.dart:3:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.2.expect b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.2.expect
index 36461a4..f994018 100644
--- a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.2.expect
@@ -45,3 +45,10 @@
constants {
#C1 = lib::A {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib.dart:
+- A. (from org-dartlang-test:///lib.dart:3:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/const_to_string.yaml.world.1.expect b/pkg/front_end/testcases/incremental/const_to_string.yaml.world.1.expect
index f842a13..fc57f00 100644
--- a/pkg/front_end/testcases/incremental/const_to_string.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/const_to_string.yaml.world.1.expect
@@ -31,3 +31,11 @@
#C1 = "Instance of 'A'"
#C2 = "Instance of 'B'"
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- A. (from org-dartlang-test:///a.dart:2:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- B. (from org-dartlang-test:///b.dart:2:9)
+
diff --git a/pkg/front_end/testcases/incremental/const_to_string.yaml.world.2.expect b/pkg/front_end/testcases/incremental/const_to_string.yaml.world.2.expect
index f842a13..fc57f00 100644
--- a/pkg/front_end/testcases/incremental/const_to_string.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/const_to_string.yaml.world.2.expect
@@ -31,3 +31,11 @@
#C1 = "Instance of 'A'"
#C2 = "Instance of 'B'"
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- A. (from org-dartlang-test:///a.dart:2:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- B. (from org-dartlang-test:///b.dart:2:9)
+
diff --git a/pkg/front_end/testcases/incremental/crash_05.yaml.world.1.expect b/pkg/front_end/testcases/incremental/crash_05.yaml.world.1.expect
index bcb7537..04e1b36 100644
--- a/pkg/front_end/testcases/incremental/crash_05.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/crash_05.yaml.world.1.expect
@@ -66,3 +66,12 @@
#C16 = dart.ffi::_FfiStructLayout {fieldTypes:#C15, packing:#C4}
#C17 = dart.core::pragma {name:#C1, options:#C16}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib.dart:
+- Uint32. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:91:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/crash_05.yaml.world.2.expect b/pkg/front_end/testcases/incremental/crash_05.yaml.world.2.expect
index bcb7537..04e1b36 100644
--- a/pkg/front_end/testcases/incremental/crash_05.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/crash_05.yaml.world.2.expect
@@ -66,3 +66,12 @@
#C16 = dart.ffi::_FfiStructLayout {fieldTypes:#C15, packing:#C4}
#C17 = dart.core::pragma {name:#C1, options:#C16}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib.dart:
+- Uint32. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:91:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/ffi_01.yaml.world.1.expect b/pkg/front_end/testcases/incremental/ffi_01.yaml.world.1.expect
index e6e7693..b7e1762 100644
--- a/pkg/front_end/testcases/incremental/ffi_01.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/ffi_01.yaml.world.1.expect
@@ -73,3 +73,12 @@
#C18 = 20
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib.dart:
+- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:115:9)
+- _NativeDouble. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:35:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/ffi_01.yaml.world.2.expect b/pkg/front_end/testcases/incremental/ffi_01.yaml.world.2.expect
index 7712ae2..655f66e 100644
--- a/pkg/front_end/testcases/incremental/ffi_01.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/ffi_01.yaml.world.2.expect
@@ -77,3 +77,12 @@
#C18 = 20
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib.dart:
+- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:115:9)
+- _NativeDouble. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:35:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expect b/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expect
index 99eefd4..8606c08 100644
--- a/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expect
@@ -74,3 +74,12 @@
#C18 = 20
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib.dart:
+- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:115:9)
+- _NativeDouble. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:35:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.1.expect b/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.1.expect
index 4000948..1168c24 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.1.expect
@@ -70,3 +70,10 @@
#C5 = "Foo"
#C6 = wid::_Location {file:#C2, line:#C3, column:#C4, name:#C5, parameterLocations:#C1}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:9:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.2.expect b/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.2.expect
index 4000948..1168c24 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.2.expect
@@ -70,3 +70,10 @@
#C5 = "Foo"
#C6 = wid::_Location {file:#C2, line:#C3, column:#C4, name:#C5, parameterLocations:#C1}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:9:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.1.expect b/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.1.expect
index ff0ff25..6347d3f6 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.1.expect
@@ -157,3 +157,22 @@
#C47 = 20.0
#C48 = wid::_Location {file:#C38, line:#C11, column:#C47, name:#C32, parameterLocations:#C1}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:7:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+- Bar._ (from org-dartlang-test:///foo.dart:5:7)
+- Widget. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:5:9)
+- Bar. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:2:9)
+
+org-dartlang-test:///foo.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:7:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+- Foo._ (from org-dartlang-test:///foo.dart:3:7)
+- Widget. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:5:9)
+- Bar. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:2:9)
+- Baz.__ (from org-dartlang-test:///foo.dart:8:7)
+- Boz._ (from org-dartlang-test:///foo.dart:10:7)
+
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.2.expect b/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.2.expect
index 47c45a0..47f4225 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.2.expect
@@ -140,3 +140,15 @@
#C36 = 10.0
#C37 = wid::_Location {file:#C2, line:#C36, column:#C11, name:#C32, parameterLocations:#C1}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///foo.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:7:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+- Foo._ (from org-dartlang-test:///foo.dart:3:7)
+- Widget. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:5:9)
+- Bar. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:2:9)
+- Baz.__ (from org-dartlang-test:///foo.dart:8:7)
+- Boz._ (from org-dartlang-test:///foo.dart:10:7)
+
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.3.expect b/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.3.expect
index ff0ff25..a2b9291 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transform_const.yaml.world.3.expect
@@ -157,3 +157,22 @@
#C47 = 20.0
#C48 = wid::_Location {file:#C38, line:#C11, column:#C47, name:#C32, parameterLocations:#C1}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///foo.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:7:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+- Foo._ (from org-dartlang-test:///foo.dart:3:7)
+- Widget. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:5:9)
+- Bar. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:2:9)
+- Baz.__ (from org-dartlang-test:///foo.dart:8:7)
+- Boz._ (from org-dartlang-test:///foo.dart:10:7)
+
+org-dartlang-test:///main.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:7:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+- Bar._ (from org-dartlang-test:///foo.dart:5:7)
+- Widget. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:5:9)
+- Bar. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:2:9)
+
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform_nnbd.yaml.world.1.expect b/pkg/front_end/testcases/incremental/flutter_widget_transform_nnbd.yaml.world.1.expect
index f4d0275..9227139 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transform_nnbd.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transform_nnbd.yaml.world.1.expect
@@ -60,3 +60,10 @@
#C5 = "Foo"
#C6 = wid::_Location {file:#C2, line:#C3, column:#C4, name:#C5, parameterLocations:#C1}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///foo.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:8:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform_nnbd.yaml.world.2.expect b/pkg/front_end/testcases/incremental/flutter_widget_transform_nnbd.yaml.world.2.expect
index 3fdfb87..b970314 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transform_nnbd.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transform_nnbd.yaml.world.2.expect
@@ -66,3 +66,17 @@
#C10 = wid::_Location {file:#C7, line:#C8, column:#C9, name:#C5, parameterLocations:#C1}
#C11 = foo::Foo {_location:#C10}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///foo.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:8:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+
+org-dartlang-test:///main.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:8:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+- Foo. (from org-dartlang-test:///foo.dart:2:34)
+- Widget. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:6:9)
+- Bar. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:2:9)
+
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transformer_43371.yaml.world.2.expect b/pkg/front_end/testcases/incremental/flutter_widget_transformer_43371.yaml.world.2.expect
index 64a1fbd..4d8c8bd 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transformer_43371.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transformer_43371.yaml.world.2.expect
@@ -69,3 +69,13 @@
#C1 = null
#C2 = foo::Foo {key:#C1, _location:#C1}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- Foo. (from org-dartlang-test:///foo.dart:6:9)
+- StatelessWidget. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:10:9)
+- Widget. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:7:9)
+- Bar. (from org-dartlang-test:///flutter/lib/src/widgets/framework.dart:2:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transformer_non_const.yaml.world.1.expect b/pkg/front_end/testcases/incremental/flutter_widget_transformer_non_const.yaml.world.1.expect
index a6fb1d9..02db06b 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transformer_non_const.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transformer_non_const.yaml.world.1.expect
@@ -61,3 +61,10 @@
#C5 = "Foo"
#C6 = wid::_Location {file:#C2, line:#C3, column:#C4, name:#C5, parameterLocations:#C1}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///foo.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:7:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transformer_non_const.yaml.world.2.expect b/pkg/front_end/testcases/incremental/flutter_widget_transformer_non_const.yaml.world.2.expect
index e6b030d..292e661 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transformer_non_const.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transformer_non_const.yaml.world.2.expect
@@ -66,3 +66,14 @@
#C9 = 15.0
#C10 = wid::_Location {file:#C7, line:#C8, column:#C9, name:#C5, parameterLocations:#C1}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///foo.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:7:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+
+org-dartlang-test:///main.dart:
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:7:9)
+- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
+
diff --git a/pkg/front_end/testcases/incremental/issue_46666.yaml.world.1.expect b/pkg/front_end/testcases/incremental/issue_46666.yaml.world.1.expect
index a889a57..2b8f16d 100644
--- a/pkg/front_end/testcases/incremental/issue_46666.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/issue_46666.yaml.world.1.expect
@@ -124,3 +124,11 @@
#C29 = 1000000
#C30 = dart.core::Duration {_duration:#C29}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///b.dart:
+- Duration. (from org-dartlang-sdk:///sdk/lib/core/duration.dart:173:9)
+- Duration._microseconds (from org-dartlang-sdk:///sdk/lib/core/duration.dart:189:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/issue_46666.yaml.world.2.expect b/pkg/front_end/testcases/incremental/issue_46666.yaml.world.2.expect
index a889a57..2b8f16d 100644
--- a/pkg/front_end/testcases/incremental/issue_46666.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/issue_46666.yaml.world.2.expect
@@ -124,3 +124,11 @@
#C29 = 1000000
#C30 = dart.core::Duration {_duration:#C29}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///b.dart:
+- Duration. (from org-dartlang-sdk:///sdk/lib/core/duration.dart:173:9)
+- Duration._microseconds (from org-dartlang-sdk:///sdk/lib/core/duration.dart:189:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.1.expect
index b41916b..e74b105 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.1.expect
@@ -36,3 +36,10 @@
constants {
#C1 = lib2::Foo {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib2.dart:
+- Foo. (from org-dartlang-test:///lib2.dart:4:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.2.expect
index 6e5e4a9..a4182de 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.2.expect
@@ -37,3 +37,10 @@
constants {
#C1 = lib2::Foo {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib2.dart:
+- Foo. (from org-dartlang-test:///lib2.dart:4:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.1.expect
index 90a9879..7d10cb3 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.1.expect
@@ -76,3 +76,11 @@
#C13 = main::CompilationStrategy {index:#C11, _name:#C12}
#C14 = <main::CompilationStrategy*>[#C4, #C7, #C10, #C13]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- CompilationStrategy. (from org-dartlang-test:///main.dart:18:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.2.expect
index 7373cee..586df3a 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.2.expect
@@ -76,3 +76,11 @@
#C13 = main::CompilationStrategy {index:#C11, _name:#C12}
#C14 = <main::CompilationStrategy*>[#C4, #C7, #C10, #C13]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- CompilationStrategy. (from org-dartlang-test:///main.dart:18:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.1.expect
index 5858d2a..fa9019c 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.1.expect
@@ -36,3 +36,10 @@
#C1 = dart.core::_Override {}
#C2 = main::Foo {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- Foo. (from org-dartlang-test:///main.dart:5:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.2.expect
index 39a1eee..e0d18ed 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.2.expect
@@ -37,3 +37,10 @@
#C1 = dart.core::_Override {}
#C2 = main::Foo {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- Foo. (from org-dartlang-test:///main.dart:5:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.1.expect
index e6e7693..b7e1762 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.1.expect
@@ -73,3 +73,12 @@
#C18 = 20
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib.dart:
+- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:115:9)
+- _NativeDouble. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:35:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.2.expect
index 1134f3c..ff06ff1 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.2.expect
@@ -74,3 +74,12 @@
#C18 = 20
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib.dart:
+- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:115:9)
+- _NativeDouble. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:35:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.3.expect
index e52f835..9f42aec 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.3.expect
@@ -75,3 +75,12 @@
#C18 = 20
#C19 = <dart.core::int*>[#C17, #C17, #C18, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C18, #C17, #C17, #C17, #C17, #C17, #C17, #C17, #C17]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib.dart:
+- Double. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:115:9)
+- _NativeDouble. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:35:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.1.expect
index a86189c..d73f0fe 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.1.expect
@@ -105,3 +105,19 @@
#C30 = 28
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- Uint8. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:75:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
+org-dartlang-test:///lib.dart:
+- Uint8. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:75:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- Uint64. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:99:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.2.expect
index a9302fa..2f12464 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_48_ffi.yaml.world.2.expect
@@ -105,3 +105,19 @@
#C30 = 36
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- Uint8. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:75:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
+org-dartlang-test:///lib.dart:
+- Uint8. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:75:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- Uint64. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:99:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.1.expect
index a86189c..d73f0fe 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.1.expect
@@ -105,3 +105,19 @@
#C30 = 28
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- Uint8. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:75:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
+org-dartlang-test:///lib.dart:
+- Uint8. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:75:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- Uint64. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:99:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.2.expect
index a9302fa..2f12464 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_49_ffi.yaml.world.2.expect
@@ -105,3 +105,19 @@
#C30 = 36
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- Uint8. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:75:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
+org-dartlang-test:///lib.dart:
+- Uint8. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:75:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- Uint64. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:99:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.1.expect
index d8895e9..e65d991 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.1.expect
@@ -32,3 +32,10 @@
#C1 = dart.core::_Override {}
#C2 = main::Foo {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- Foo. (from org-dartlang-test:///main.dart:5:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.2.expect
index 443a189c..5267571 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.2.expect
@@ -32,3 +32,10 @@
#C1 = dart.core::_Override {}
#C2 = main::Foo {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- Foo. (from org-dartlang-test:///main.dart:5:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.3.expect
index e7549e8..e291aa1 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.3.expect
@@ -33,3 +33,10 @@
#C1 = dart.core::_Override {}
#C2 = main::Foo {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- Foo. (from org-dartlang-test:///main.dart:5:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.1.expect
index b64cce3..3285a00 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.1.expect
@@ -291,3 +291,19 @@
#C30 = 28
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- Uint8. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:75:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
+org-dartlang-test:///lib.dart:
+- Uint8. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:75:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- Uint64. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:99:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.2.expect
index e760406..ef80737 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_50_ffi.yaml.world.2.expect
@@ -291,3 +291,19 @@
#C30 = 36
#C31 = <dart.core::int*>[#C29, #C29, #C30, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C30, #C29, #C29, #C29, #C29, #C29, #C29, #C29, #C29]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- Uint8. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:75:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
+org-dartlang-test:///lib.dart:
+- Uint8. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:75:9)
+- _NativeInteger. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:27:9)
+- NativeType. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+- Uint64. (from org-dartlang-sdk:///sdk/lib/ffi/native_type.dart:99:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.1.expect
index 59e6822..2cc160f 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.1.expect
@@ -83,3 +83,11 @@
#C13 = main::CompilationStrategy {index:#C11, _name:#C12}
#C14 = <main::CompilationStrategy*>[#C4, #C7, #C10, #C13]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- CompilationStrategy. (from org-dartlang-test:///main.dart:18:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.2.expect
index 9008ffe..f4b7e7b 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.2.expect
@@ -83,3 +83,11 @@
#C13 = main::CompilationStrategy {index:#C11, _name:#C12}
#C14 = <main::CompilationStrategy*>[#C4, #C7, #C10, #C13]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- CompilationStrategy. (from org-dartlang-test:///main.dart:18:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.3.expect
index bc00082..f45163f 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.3.expect
@@ -76,3 +76,11 @@
#C13 = main::CompilationStrategy {index:#C11, _name:#C12}
#C14 = <main::CompilationStrategy*>[#C4, #C7, #C10, #C13]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- CompilationStrategy. (from org-dartlang-test:///main.dart:18:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.1.expect
index 69f385d..0b471c1 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.1.expect
@@ -95,3 +95,11 @@
#C14 = main::CompilationStrategy {index:#C12, _name:#C13}
#C15 = <main::CompilationStrategy*>[#C5, #C8, #C11, #C14]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- CompilationStrategy. (from org-dartlang-test:///main.dart:33:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.2.expect
index 69f385d..0b471c1 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.2.expect
@@ -95,3 +95,11 @@
#C14 = main::CompilationStrategy {index:#C12, _name:#C13}
#C15 = <main::CompilationStrategy*>[#C5, #C8, #C11, #C14]
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///main.dart:
+- CompilationStrategy. (from org-dartlang-test:///main.dart:33:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.2.expect
index dfaa047..88a3567 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.2.expect
@@ -69,3 +69,12 @@
dart.core::print(invalid-expression "This assertion failed.");
}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib2.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+
+org-dartlang-test:///lib3.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.3.expect
index cde8746..8f13ae6 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.3.expect
@@ -59,3 +59,13 @@
constants {
#C1 = lib::Foo {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib3.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+
+org-dartlang-test:///lib2.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.4.expect b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.4.expect
index d0d6582..f0e49e5 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.4.expect
@@ -59,3 +59,13 @@
constants {
#C1 = lib::Foo {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib2.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+
+org-dartlang-test:///lib3.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.5.expect b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.5.expect
index 2d91ec1..2268375 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.5.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.5.expect
@@ -46,3 +46,14 @@
constants {
#C1 = lib::Foo {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib2.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
+org-dartlang-test:///lib3.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.2.expect
index 3cac950..ad41429 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.2.expect
@@ -62,3 +62,9 @@
lib2::bar();
}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib2.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.3.expect
index ae3bfe7..0c12219 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.3.expect
@@ -55,3 +55,10 @@
constants {
#C1 = lib::Foo {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib2.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.2.expect
index 15f54b2..0c6d913 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.2.expect
@@ -47,3 +47,9 @@
lib::foo();
}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib2.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.2.expect
index 1ba9798..bad435a 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.2.expect
@@ -69,3 +69,9 @@
dart.core::print(invalid-expression "This assertion failed.");
}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib2.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.3.expect
index dc713d3..c5b8118 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.3.expect
@@ -46,3 +46,10 @@
constants {
#C1 = lib::Foo {}
}
+
+
+Constructor coverage from constants:
+org-dartlang-test:///lib2.dart:
+- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
+
diff --git a/pkg/front_end/testcases/macros/augment_concrete.dart b/pkg/front_end/testcases/macros/augment_concrete.dart
new file mode 100644
index 0000000..821e483
--- /dev/null
+++ b/pkg/front_end/testcases/macros/augment_concrete.dart
@@ -0,0 +1,31 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import augment 'augment_concrete_lib1.dart';
+import augment 'augment_concrete_lib2.dart';
+
+void topLevelMethod() {
+ print('topLevelMethod original');
+}
+
+external void externalTopLevelMethod();
+
+class Class {
+ void instanceMethod() {
+ print('instanceMethod original');
+ }
+
+ static void staticMethod() {
+ print('staticMethod original');
+ }
+
+ external void externalInstanceMethod();
+}
+
+main() {
+ topLevelMethod();
+ new Class().instanceMethod();
+ Class.staticMethod();
+ new Class().externalInstanceMethod();
+}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/macros/augment_concrete.dart.strong.expect b/pkg/front_end/testcases/macros/augment_concrete.dart.strong.expect
new file mode 100644
index 0000000..83a035a
--- /dev/null
+++ b/pkg/front_end/testcases/macros/augment_concrete.dart.strong.expect
@@ -0,0 +1,51 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "org-dartlang-testcase:///augment_concrete.dart";
+import "org-dartlang-testcase:///augment_concrete.dart";
+
+class Class extends core::Object {
+ synthetic constructor •() → self::Class
+ : super core::Object::•()
+ ;
+ method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ instanceMethod() → void {
+ core::print("instanceMethod augmentation 2");
+ }
+ static method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ staticMethod() → void {
+ core::print("staticMethod augmentation 2");
+ }
+ method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ externalInstanceMethod() → void {
+ core::print("externalInstanceMethod augmentation 2");
+ }
+ method _#instanceMethod#augment0() → void {
+ core::print("instanceMethod original");
+ }
+ method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#instanceMethod#augment1() → void {
+ core::print("instanceMethod augmentation 1");
+ }
+ static method _#staticMethod#augment0() → void {
+ core::print("staticMethod original");
+ }
+ static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#staticMethod#augment1() → void {
+ core::print("staticMethod augmentation 1");
+ }
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ topLevelMethod() → void {
+ core::print("topLevelMethod augmentation 2");
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ externalTopLevelMethod() → void {
+ core::print("externalTopLevelMethod augmentation 1");
+}
+static method main() → dynamic {
+ self::topLevelMethod();
+ new self::Class::•().{self::Class::instanceMethod}(){() → void};
+ self::Class::staticMethod();
+ new self::Class::•().{self::Class::externalInstanceMethod}(){() → void};
+}
+static method _#topLevelMethod#augment0() → void {
+ core::print("topLevelMethod original");
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#topLevelMethod#augment1() → void {
+ core::print("topLevelMethod augmentation 1");
+}
diff --git a/pkg/front_end/testcases/macros/augment_concrete.dart.strong.transformed.expect b/pkg/front_end/testcases/macros/augment_concrete.dart.strong.transformed.expect
new file mode 100644
index 0000000..83a035a
--- /dev/null
+++ b/pkg/front_end/testcases/macros/augment_concrete.dart.strong.transformed.expect
@@ -0,0 +1,51 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "org-dartlang-testcase:///augment_concrete.dart";
+import "org-dartlang-testcase:///augment_concrete.dart";
+
+class Class extends core::Object {
+ synthetic constructor •() → self::Class
+ : super core::Object::•()
+ ;
+ method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ instanceMethod() → void {
+ core::print("instanceMethod augmentation 2");
+ }
+ static method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ staticMethod() → void {
+ core::print("staticMethod augmentation 2");
+ }
+ method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ externalInstanceMethod() → void {
+ core::print("externalInstanceMethod augmentation 2");
+ }
+ method _#instanceMethod#augment0() → void {
+ core::print("instanceMethod original");
+ }
+ method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#instanceMethod#augment1() → void {
+ core::print("instanceMethod augmentation 1");
+ }
+ static method _#staticMethod#augment0() → void {
+ core::print("staticMethod original");
+ }
+ static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#staticMethod#augment1() → void {
+ core::print("staticMethod augmentation 1");
+ }
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ topLevelMethod() → void {
+ core::print("topLevelMethod augmentation 2");
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ externalTopLevelMethod() → void {
+ core::print("externalTopLevelMethod augmentation 1");
+}
+static method main() → dynamic {
+ self::topLevelMethod();
+ new self::Class::•().{self::Class::instanceMethod}(){() → void};
+ self::Class::staticMethod();
+ new self::Class::•().{self::Class::externalInstanceMethod}(){() → void};
+}
+static method _#topLevelMethod#augment0() → void {
+ core::print("topLevelMethod original");
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#topLevelMethod#augment1() → void {
+ core::print("topLevelMethod augmentation 1");
+}
diff --git a/pkg/front_end/testcases/macros/augment_concrete.dart.textual_outline.expect b/pkg/front_end/testcases/macros/augment_concrete.dart.textual_outline.expect
new file mode 100644
index 0000000..68a15f5
--- /dev/null
+++ b/pkg/front_end/testcases/macros/augment_concrete.dart.textual_outline.expect
@@ -0,0 +1,10 @@
+import augment 'augment_concrete_lib1.dart';
+import augment 'augment_concrete_lib2.dart';
+void topLevelMethod() {}
+external void externalTopLevelMethod();
+class Class {
+ void instanceMethod() {}
+ static void staticMethod() {}
+ external void externalInstanceMethod();
+}
+main() {}
diff --git a/pkg/front_end/testcases/macros/augment_concrete.dart.weak.expect b/pkg/front_end/testcases/macros/augment_concrete.dart.weak.expect
new file mode 100644
index 0000000..83a035a
--- /dev/null
+++ b/pkg/front_end/testcases/macros/augment_concrete.dart.weak.expect
@@ -0,0 +1,51 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "org-dartlang-testcase:///augment_concrete.dart";
+import "org-dartlang-testcase:///augment_concrete.dart";
+
+class Class extends core::Object {
+ synthetic constructor •() → self::Class
+ : super core::Object::•()
+ ;
+ method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ instanceMethod() → void {
+ core::print("instanceMethod augmentation 2");
+ }
+ static method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ staticMethod() → void {
+ core::print("staticMethod augmentation 2");
+ }
+ method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ externalInstanceMethod() → void {
+ core::print("externalInstanceMethod augmentation 2");
+ }
+ method _#instanceMethod#augment0() → void {
+ core::print("instanceMethod original");
+ }
+ method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#instanceMethod#augment1() → void {
+ core::print("instanceMethod augmentation 1");
+ }
+ static method _#staticMethod#augment0() → void {
+ core::print("staticMethod original");
+ }
+ static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#staticMethod#augment1() → void {
+ core::print("staticMethod augmentation 1");
+ }
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ topLevelMethod() → void {
+ core::print("topLevelMethod augmentation 2");
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ externalTopLevelMethod() → void {
+ core::print("externalTopLevelMethod augmentation 1");
+}
+static method main() → dynamic {
+ self::topLevelMethod();
+ new self::Class::•().{self::Class::instanceMethod}(){() → void};
+ self::Class::staticMethod();
+ new self::Class::•().{self::Class::externalInstanceMethod}(){() → void};
+}
+static method _#topLevelMethod#augment0() → void {
+ core::print("topLevelMethod original");
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#topLevelMethod#augment1() → void {
+ core::print("topLevelMethod augmentation 1");
+}
diff --git a/pkg/front_end/testcases/macros/augment_concrete.dart.weak.modular.expect b/pkg/front_end/testcases/macros/augment_concrete.dart.weak.modular.expect
new file mode 100644
index 0000000..83a035a
--- /dev/null
+++ b/pkg/front_end/testcases/macros/augment_concrete.dart.weak.modular.expect
@@ -0,0 +1,51 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "org-dartlang-testcase:///augment_concrete.dart";
+import "org-dartlang-testcase:///augment_concrete.dart";
+
+class Class extends core::Object {
+ synthetic constructor •() → self::Class
+ : super core::Object::•()
+ ;
+ method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ instanceMethod() → void {
+ core::print("instanceMethod augmentation 2");
+ }
+ static method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ staticMethod() → void {
+ core::print("staticMethod augmentation 2");
+ }
+ method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ externalInstanceMethod() → void {
+ core::print("externalInstanceMethod augmentation 2");
+ }
+ method _#instanceMethod#augment0() → void {
+ core::print("instanceMethod original");
+ }
+ method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#instanceMethod#augment1() → void {
+ core::print("instanceMethod augmentation 1");
+ }
+ static method _#staticMethod#augment0() → void {
+ core::print("staticMethod original");
+ }
+ static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#staticMethod#augment1() → void {
+ core::print("staticMethod augmentation 1");
+ }
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ topLevelMethod() → void {
+ core::print("topLevelMethod augmentation 2");
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ externalTopLevelMethod() → void {
+ core::print("externalTopLevelMethod augmentation 1");
+}
+static method main() → dynamic {
+ self::topLevelMethod();
+ new self::Class::•().{self::Class::instanceMethod}(){() → void};
+ self::Class::staticMethod();
+ new self::Class::•().{self::Class::externalInstanceMethod}(){() → void};
+}
+static method _#topLevelMethod#augment0() → void {
+ core::print("topLevelMethod original");
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#topLevelMethod#augment1() → void {
+ core::print("topLevelMethod augmentation 1");
+}
diff --git a/pkg/front_end/testcases/macros/augment_concrete.dart.weak.outline.expect b/pkg/front_end/testcases/macros/augment_concrete.dart.weak.outline.expect
new file mode 100644
index 0000000..0c99b32
--- /dev/null
+++ b/pkg/front_end/testcases/macros/augment_concrete.dart.weak.outline.expect
@@ -0,0 +1,21 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "org-dartlang-testcase:///augment_concrete.dart";
+import "org-dartlang-testcase:///augment_concrete.dart";
+
+class Class extends core::Object {
+ synthetic constructor •() → self::Class
+ ;
+ method instanceMethod() → void
+ ;
+ static method staticMethod() → void
+ ;
+ external method externalInstanceMethod() → void;
+}
+static method topLevelMethod() → void
+ ;
+external static method externalTopLevelMethod() → void;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/macros/augment_concrete.dart.weak.transformed.expect b/pkg/front_end/testcases/macros/augment_concrete.dart.weak.transformed.expect
new file mode 100644
index 0000000..83a035a
--- /dev/null
+++ b/pkg/front_end/testcases/macros/augment_concrete.dart.weak.transformed.expect
@@ -0,0 +1,51 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "org-dartlang-testcase:///augment_concrete.dart";
+import "org-dartlang-testcase:///augment_concrete.dart";
+
+class Class extends core::Object {
+ synthetic constructor •() → self::Class
+ : super core::Object::•()
+ ;
+ method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ instanceMethod() → void {
+ core::print("instanceMethod augmentation 2");
+ }
+ static method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ staticMethod() → void {
+ core::print("staticMethod augmentation 2");
+ }
+ method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ externalInstanceMethod() → void {
+ core::print("externalInstanceMethod augmentation 2");
+ }
+ method _#instanceMethod#augment0() → void {
+ core::print("instanceMethod original");
+ }
+ method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#instanceMethod#augment1() → void {
+ core::print("instanceMethod augmentation 1");
+ }
+ static method _#staticMethod#augment0() → void {
+ core::print("staticMethod original");
+ }
+ static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#staticMethod#augment1() → void {
+ core::print("staticMethod augmentation 1");
+ }
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib2.dart */ topLevelMethod() → void {
+ core::print("topLevelMethod augmentation 2");
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ externalTopLevelMethod() → void {
+ core::print("externalTopLevelMethod augmentation 1");
+}
+static method main() → dynamic {
+ self::topLevelMethod();
+ new self::Class::•().{self::Class::instanceMethod}(){() → void};
+ self::Class::staticMethod();
+ new self::Class::•().{self::Class::externalInstanceMethod}(){() → void};
+}
+static method _#topLevelMethod#augment0() → void {
+ core::print("topLevelMethod original");
+}
+static method /* from org-dartlang-testcase:///augment_concrete_lib1.dart */ _#topLevelMethod#augment1() → void {
+ core::print("topLevelMethod augmentation 1");
+}
diff --git a/pkg/front_end/testcases/macros/augment_concrete_lib1.dart b/pkg/front_end/testcases/macros/augment_concrete_lib1.dart
new file mode 100644
index 0000000..e036435
--- /dev/null
+++ b/pkg/front_end/testcases/macros/augment_concrete_lib1.dart
@@ -0,0 +1,21 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+augment void topLevelMethod() {
+ print('topLevelMethod augmentation 1');
+}
+
+augment void externalTopLevelMethod() {
+ print('externalTopLevelMethod augmentation 1');
+}
+
+augment class Class {
+ augment void instanceMethod() {
+ print('instanceMethod augmentation 1');
+ }
+
+ augment static void staticMethod() {
+ print('staticMethod augmentation 1');
+ }
+}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/macros/augment_concrete_lib2.dart b/pkg/front_end/testcases/macros/augment_concrete_lib2.dart
new file mode 100644
index 0000000..de1bc9b
--- /dev/null
+++ b/pkg/front_end/testcases/macros/augment_concrete_lib2.dart
@@ -0,0 +1,21 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+augment void topLevelMethod() {
+ print('topLevelMethod augmentation 2');
+}
+
+augment class Class {
+ augment void instanceMethod() {
+ print('instanceMethod augmentation 2');
+ }
+
+ augment static void staticMethod() {
+ print('staticMethod augmentation 2');
+ }
+
+ augment void externalInstanceMethod() {
+ print('externalInstanceMethod augmentation 2');
+ }
+}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/macros/augment_super.dart.strong.expect b/pkg/front_end/testcases/macros/augment_super.dart.strong.expect
index d309789..fa16fcc 100644
--- a/pkg/front_end/testcases/macros/augment_super.dart.strong.expect
+++ b/pkg/front_end/testcases/macros/augment_super.dart.strong.expect
@@ -122,6 +122,11 @@
augment; // Error
^^^^^^^" in this{<unresolved>}.augment;
}
+ method _#instanceMethod#augment0() → void {}
+ method _#instanceMethodErrors#augment0() → void {}
+ get _#instanceProperty#augment0() → core::int
+ return 42;
+ set _#instanceProperty#augment0(core::int value) → void {}
}
static method /* from org-dartlang-testcase:///augment_super_lib.dart */ topLevelMethod() → void {
(null as{ForNonNullableByDefault} dynamic){dynamic}.call();
@@ -162,3 +167,7 @@
augment; // Error
^^^^^^^";
}
+static method _#topLevelMethod#augment0() → void {}
+static get _#topLevelProperty#augment0() → core::List<core::int>
+ return <core::int>[42];
+static set _#topLevelProperty#augment0(core::List<core::int> value) → void {}
diff --git a/pkg/front_end/testcases/macros/augment_super.dart.strong.transformed.expect b/pkg/front_end/testcases/macros/augment_super.dart.strong.transformed.expect
index e1236aa..7334815 100644
--- a/pkg/front_end/testcases/macros/augment_super.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/macros/augment_super.dart.strong.transformed.expect
@@ -122,6 +122,11 @@
augment; // Error
^^^^^^^" in this{<unresolved>}.augment;
}
+ method _#instanceMethod#augment0() → void {}
+ method _#instanceMethodErrors#augment0() → void {}
+ get _#instanceProperty#augment0() → core::int
+ return 42;
+ set _#instanceProperty#augment0(core::int value) → void {}
}
static method /* from org-dartlang-testcase:///augment_super_lib.dart */ topLevelMethod() → void {
(null as{ForNonNullableByDefault} dynamic){dynamic}.call();
@@ -168,6 +173,10 @@
augment; // Error
^^^^^^^";
}
+static method _#topLevelMethod#augment0() → void {}
+static get _#topLevelProperty#augment0() → core::List<core::int>
+ return core::_GrowableList::_literal1<core::int>(42);
+static set _#topLevelProperty#augment0(core::List<core::int> value) → void {}
Extra constant evaluation status:
@@ -177,4 +186,4 @@
Evaluated: AsExpression @ org-dartlang-testcase:///augment_super_lib.dart:16:15 -> NullConstant(null)
Evaluated: AsExpression @ org-dartlang-testcase:///augment_super_lib.dart:16:30 -> NullConstant(null)
Evaluated: AsExpression @ org-dartlang-testcase:///augment_super_lib.dart:20:3 -> NullConstant(null)
-Extra constant evaluation: evaluated: 31, effectively constant: 6
+Extra constant evaluation: evaluated: 32, effectively constant: 6
diff --git a/pkg/front_end/testcases/macros/augment_super.dart.weak.expect b/pkg/front_end/testcases/macros/augment_super.dart.weak.expect
index d309789..fa16fcc 100644
--- a/pkg/front_end/testcases/macros/augment_super.dart.weak.expect
+++ b/pkg/front_end/testcases/macros/augment_super.dart.weak.expect
@@ -122,6 +122,11 @@
augment; // Error
^^^^^^^" in this{<unresolved>}.augment;
}
+ method _#instanceMethod#augment0() → void {}
+ method _#instanceMethodErrors#augment0() → void {}
+ get _#instanceProperty#augment0() → core::int
+ return 42;
+ set _#instanceProperty#augment0(core::int value) → void {}
}
static method /* from org-dartlang-testcase:///augment_super_lib.dart */ topLevelMethod() → void {
(null as{ForNonNullableByDefault} dynamic){dynamic}.call();
@@ -162,3 +167,7 @@
augment; // Error
^^^^^^^";
}
+static method _#topLevelMethod#augment0() → void {}
+static get _#topLevelProperty#augment0() → core::List<core::int>
+ return <core::int>[42];
+static set _#topLevelProperty#augment0(core::List<core::int> value) → void {}
diff --git a/pkg/front_end/testcases/macros/augment_super.dart.weak.modular.expect b/pkg/front_end/testcases/macros/augment_super.dart.weak.modular.expect
index d309789..fa16fcc 100644
--- a/pkg/front_end/testcases/macros/augment_super.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/macros/augment_super.dart.weak.modular.expect
@@ -122,6 +122,11 @@
augment; // Error
^^^^^^^" in this{<unresolved>}.augment;
}
+ method _#instanceMethod#augment0() → void {}
+ method _#instanceMethodErrors#augment0() → void {}
+ get _#instanceProperty#augment0() → core::int
+ return 42;
+ set _#instanceProperty#augment0(core::int value) → void {}
}
static method /* from org-dartlang-testcase:///augment_super_lib.dart */ topLevelMethod() → void {
(null as{ForNonNullableByDefault} dynamic){dynamic}.call();
@@ -162,3 +167,7 @@
augment; // Error
^^^^^^^";
}
+static method _#topLevelMethod#augment0() → void {}
+static get _#topLevelProperty#augment0() → core::List<core::int>
+ return <core::int>[42];
+static set _#topLevelProperty#augment0(core::List<core::int> value) → void {}
diff --git a/pkg/front_end/testcases/macros/augment_super.dart.weak.transformed.expect b/pkg/front_end/testcases/macros/augment_super.dart.weak.transformed.expect
index 6d9c5f8..c063461 100644
--- a/pkg/front_end/testcases/macros/augment_super.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/macros/augment_super.dart.weak.transformed.expect
@@ -122,6 +122,11 @@
augment; // Error
^^^^^^^" in this{<unresolved>}.augment;
}
+ method _#instanceMethod#augment0() → void {}
+ method _#instanceMethodErrors#augment0() → void {}
+ get _#instanceProperty#augment0() → core::int
+ return 42;
+ set _#instanceProperty#augment0(core::int value) → void {}
}
static method /* from org-dartlang-testcase:///augment_super_lib.dart */ topLevelMethod() → void {
(null as{ForNonNullableByDefault} dynamic){dynamic}.call();
@@ -168,6 +173,10 @@
augment; // Error
^^^^^^^";
}
+static method _#topLevelMethod#augment0() → void {}
+static get _#topLevelProperty#augment0() → core::List<core::int>
+ return core::_GrowableList::_literal1<core::int>(42);
+static set _#topLevelProperty#augment0(core::List<core::int> value) → void {}
Extra constant evaluation status:
@@ -177,4 +186,4 @@
Evaluated: AsExpression @ org-dartlang-testcase:///augment_super_lib.dart:16:15 -> NullConstant(null)
Evaluated: AsExpression @ org-dartlang-testcase:///augment_super_lib.dart:16:30 -> NullConstant(null)
Evaluated: AsExpression @ org-dartlang-testcase:///augment_super_lib.dart:20:3 -> NullConstant(null)
-Extra constant evaluation: evaluated: 30, effectively constant: 6
+Extra constant evaluation: evaluated: 31, effectively constant: 6
diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status
index 7be4428..d19b28b 100644
--- a/pkg/front_end/testcases/textual_outline.status
+++ b/pkg/front_end/testcases/textual_outline.status
@@ -112,6 +112,7 @@
inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1: FormatterCrash
late_lowering/later: FormatterCrash
macros/augment_class: FormatterCrash
+macros/augment_concrete: FormatterCrash
macros/augment_super: FormatterCrash
macros/class_members: FormatterCrash
macros/inject_constructor: FormatterCrash
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
index 93f8ea9..ae11a58 100644
--- a/pkg/kernel/lib/ast.dart
+++ b/pkg/kernel/lib/ast.dart
@@ -2904,7 +2904,7 @@
/// Valid values are from 0 and up, or -1 ([TreeNode.noOffset]) if the file
/// start offset is not available (this is the default if none is specifically
/// set).
- int startFileOffset = TreeNode.noOffset;
+ int fileStartOffset = TreeNode.noOffset;
final ProcedureKind kind;
int flags = 0;
@@ -2912,31 +2912,6 @@
@override
FunctionNode function;
- // The function node's body might be lazily loaded, meaning that this value
- // might not be set correctly yet. Make sure the body is loaded before
- // returning anything.
- @override
- int get transformerFlags {
- function.body;
- return super.transformerFlags;
- }
-
- // The function node's body might be lazily loaded, meaning that this value
- // might get overwritten later (when the body is read). To avoid that read the
- // body now and only set the value afterwards.
- @override
- void set transformerFlags(int newValue) {
- function.body;
- super.transformerFlags = newValue;
- }
-
- // This function will set the transformer flags without loading the body.
- // Used when reading the binary. For other cases one should probably use
- // `transformerFlags = value;`.
- void setTransformerFlagsWithoutLazyLoading(int newValue) {
- super.transformerFlags = newValue;
- }
-
ProcedureStubKind stubKind;
Reference? stubTargetReference;
@@ -3025,6 +3000,31 @@
"$memberSignatureOrigin for $this.");
}
+ // The function node's body might be lazily loaded, meaning that this value
+ // might not be set correctly yet. Make sure the body is loaded before
+ // returning anything.
+ @override
+ int get transformerFlags {
+ function.body;
+ return super.transformerFlags;
+ }
+
+ // The function node's body might be lazily loaded, meaning that this value
+ // might get overwritten later (when the body is read). To avoid that read the
+ // body now and only set the value afterwards.
+ @override
+ void set transformerFlags(int newValue) {
+ function.body;
+ super.transformerFlags = newValue;
+ }
+
+ // This function will set the transformer flags without loading the body.
+ // Used when reading the binary. For other cases one should probably use
+ // `transformerFlags = value;`.
+ void setTransformerFlagsWithoutLazyLoading(int newValue) {
+ super.transformerFlags = newValue;
+ }
+
@override
void bindCanonicalNames(CanonicalName parent) {
parent.getChildFromProcedure(this).bindTo(reference);
diff --git a/pkg/kernel/lib/binary/ast_from_binary.dart b/pkg/kernel/lib/binary/ast_from_binary.dart
index cc22844..a4fd2ba 100644
--- a/pkg/kernel/lib/binary/ast_from_binary.dart
+++ b/pkg/kernel/lib/binary/ast_from_binary.dart
@@ -1706,7 +1706,7 @@
}
int transformerFlags = getAndResetTransformerFlags();
assert(((_) => true)(debugPath.removeLast()));
- node.startFileOffset = startFileOffset;
+ node.fileStartOffset = startFileOffset;
node.fileOffset = fileOffset;
node.fileEndOffset = fileEndOffset;
node.flags = flags;
diff --git a/pkg/kernel/lib/binary/ast_to_binary.dart b/pkg/kernel/lib/binary/ast_to_binary.dart
index 781c8ba..6b7c969 100644
--- a/pkg/kernel/lib/binary/ast_to_binary.dart
+++ b/pkg/kernel/lib/binary/ast_to_binary.dart
@@ -1348,7 +1348,7 @@
writeByte(Tag.Procedure);
_writeNonNullCanonicalName(canonicalName);
writeUriReference(node.fileUri);
- writeOffset(node.startFileOffset);
+ writeOffset(node.fileStartOffset);
writeOffset(node.fileOffset);
writeOffset(node.fileEndOffset);
writeByte(node.kind.index);
diff --git a/pkg/kernel/lib/clone.dart b/pkg/kernel/lib/clone.dart
index d8f5c67b..2de4631 100644
--- a/pkg/kernel/lib/clone.dart
+++ b/pkg/kernel/lib/clone.dart
@@ -917,7 +917,7 @@
..annotations = cloneAnnotations && !node.annotations.isEmpty
? node.annotations.map(super.clone).toList()
: const <Expression>[]
- ..startFileOffset = _cloneFileOffset(node.startFileOffset)
+ ..fileStartOffset = _cloneFileOffset(node.fileStartOffset)
..fileOffset = _cloneFileOffset(node.fileOffset)
..fileEndOffset = _cloneFileOffset(node.fileEndOffset)
..flags = node.flags;
diff --git a/pkg/kernel/lib/src/equivalence.dart b/pkg/kernel/lib/src/equivalence.dart
index a5efbee..a1f334a 100644
--- a/pkg/kernel/lib/src/equivalence.dart
+++ b/pkg/kernel/lib/src/equivalence.dart
@@ -1786,7 +1786,7 @@
}
visitor.pushNodeState(node, other);
bool result = true;
- if (!checkProcedure_startFileOffset(visitor, node, other)) {
+ if (!checkProcedure_fileStartOffset(visitor, node, other)) {
result = visitor.resultOnInequivalence;
}
if (!checkProcedure_kind(visitor, node, other)) {
@@ -5172,10 +5172,10 @@
return checkMember_fileOffset(visitor, node, other);
}
- bool checkProcedure_startFileOffset(
+ bool checkProcedure_fileStartOffset(
EquivalenceVisitor visitor, Procedure node, Procedure other) {
return visitor.checkValues(
- node.startFileOffset, other.startFileOffset, 'startFileOffset');
+ node.fileStartOffset, other.fileStartOffset, 'fileStartOffset');
}
bool checkProcedure_kind(
diff --git a/samples/ffi/async/async_test.dart b/samples/ffi/async/async_test.dart
index f438582..3210140 100644
--- a/samples/ffi/async/async_test.dart
+++ b/samples/ffi/async/async_test.dart
@@ -9,7 +9,10 @@
import 'sample_async_callback.dart' as sample0;
import 'sample_native_port_call.dart' as sample1;
-main() {
- sample0.main();
- sample1.main();
+main() async {
+ print('==========');
+ await sample0.main();
+ print('==========');
+ await sample1.main();
+ print('==========');
}
diff --git a/samples_2/ffi/async/async_test.dart b/samples_2/ffi/async/async_test.dart
index 297a76e..5470052 100644
--- a/samples_2/ffi/async/async_test.dart
+++ b/samples_2/ffi/async/async_test.dart
@@ -11,7 +11,10 @@
import 'sample_async_callback.dart' as sample0;
import 'sample_native_port_call.dart' as sample1;
-main() {
- sample0.main();
- sample1.main();
+main() async {
+ print('==========');
+ await sample0.main();
+ print('==========');
+ await sample1.main();
+ print('==========');
}
diff --git a/tools/VERSION b/tools/VERSION
index cb3be23..f2683d3 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 18
PATCH 0
-PRERELEASE 236
+PRERELEASE 237
PRERELEASE_PATCH 0
\ No newline at end of file