Version 2.16.0-136.0.dev
Merge commit '58255db1d3d439c24da04de370e2fdf42c825117' into 'dev'
diff --git a/pkg/front_end/lib/src/fasta/builder/enum_builder.dart b/pkg/front_end/lib/src/fasta/builder/enum_builder.dart
index ecc964c..a77692c 100644
--- a/pkg/front_end/lib/src/fasta/builder/enum_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/enum_builder.dart
@@ -121,7 +121,8 @@
int charOffset,
int charEndOffset,
IndexedClass? referencesFromIndexed,
- Scope scope) {
+ Scope scope,
+ ConstructorScope constructorScope) {
assert(enumConstantInfos == null || enumConstantInfos.isNotEmpty);
Uri fileUri = parent.fileUri;
@@ -374,7 +375,7 @@
parent: parent.scope,
debugName: "enum $name",
isModifiable: false),
- new ConstructorScope(name, constructors),
+ constructorScope..local.addAll(constructors),
cls,
enumConstantInfos,
intType,
diff --git a/pkg/front_end/lib/src/fasta/kernel/macro.dart b/pkg/front_end/lib/src/fasta/kernel/macro.dart
index afa9dca..dd6dfb1 100644
--- a/pkg/front_end/lib/src/fasta/kernel/macro.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/macro.dart
@@ -6,7 +6,8 @@
bool enableMacros = false;
-final Uri macroLibraryUri = Uri.parse('package:macro_builder/src/macro.dart');
+final Uri macroLibraryUri =
+ Uri.parse('package:_fe_analyzer_shared/src/macros/api.dart');
const String macroClassName = 'Macro';
class MacroDeclarationData {
@@ -26,9 +27,7 @@
}
class LibraryMacroApplicationData {
- MacroApplications? libraryApplications;
Map<Class, ClassMacroApplicationData> classData = {};
- Map<Typedef, MacroApplications> typedefApplications = {};
Map<Member, MacroApplications> memberApplications = {};
}
diff --git a/pkg/front_end/lib/src/fasta/source/outline_builder.dart b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
index 82bbe12..c4e44e2 100644
--- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
@@ -1775,6 +1775,7 @@
case _MethodKind.classConstructor:
case _MethodKind.mixinConstructor:
case _MethodKind.extensionConstructor:
+ case _MethodKind.enumConstructor:
constructorName = libraryBuilder.computeAndValidateConstructorName(
name, charOffset) ??
name as String?;
@@ -2340,6 +2341,14 @@
@override
void handleEnumElements(Token elementsEndToken, int elementsCount) {
debugEvent("EnumElements");
+ push(elementsCount);
+ }
+
+ @override
+ void endEnum(Token enumKeyword, Token leftBrace, int memberCount) {
+ debugEvent("Enum");
+
+ int elementsCount = pop() as int;
List<EnumConstantInfo?>? enumConstantInfos =
const FixedNullableList<EnumConstantInfo>().pop(stack, elementsCount);
int endCharOffset = popCharOffset();
@@ -2354,19 +2363,15 @@
checkEmpty(startCharOffset);
if (name is! ParserRecovery) {
- libraryBuilder.addEnum(metadata, name as String, enumConstantInfos,
- startCharOffset, charOffset, endCharOffset);
+ libraryBuilder.addEnum(metadata, name as String, typeVariables,
+ enumConstantInfos, startCharOffset, charOffset, endCharOffset);
} else {
libraryBuilder
.endNestedDeclaration(
TypeParameterScopeKind.enumDeclaration, "<syntax-error>")
.resolveNamedTypes(typeVariables, libraryBuilder);
}
- }
- @override
- void endEnum(Token enumKeyword, Token leftBrace, int memberCount) {
- debugEvent("Enum");
checkEmpty(enumKeyword.charOffset);
popDeclarationContext(DeclarationContext.Enum);
}
@@ -3029,7 +3034,6 @@
pop(); // name
pop(); // modifiers
pop(); // metadata
- checkEmpty(beginToken.charOffset);
popDeclarationContext();
// TODO(cstefantsova): Use actual type parameters.
libraryBuilder
@@ -3068,7 +3072,6 @@
int modifiers = Modifier.toMask(pop() as List<Modifier>?);
popCharOffset(); // final or const offset
pop(); // metadata
- checkEmpty(beginToken.charOffset);
popDeclarationContext();
TypeParameterScopeKind scopeKind;
if ((modifiers & staticMask) != 0) {
@@ -3107,7 +3110,6 @@
popFieldInfos(count); // field infos
pop(); // type
pop(); // metadata
- checkEmpty(beginToken.charOffset);
popDeclarationContext();
// Skip the declaration. An error as already been produced by the parser.
@@ -3123,36 +3125,15 @@
@override
void endEnumConstructor(Token? getOrSet, Token beginToken, Token beginParam,
Token? beginInitializers, Token endToken) {
- // TODO(cstefantsova): Call endClassConstructor instead.
- debugEvent("EnumMethod");
- MethodBody bodyKind = pop() as MethodBody;
- if (bodyKind == MethodBody.RedirectingFactoryBody) {
- pop(); // reference
- }
- pop(); // async marker
- pop(); // formals
- popCharOffset(); // formals char offset
- pop(); // type variables
- popCharOffset(); // char offset
- pop(); // name
- pop(); // return type
- pop(); // modifiers
- popCharOffset(); // final or const offset
- pop(); // metadata
- checkEmpty(beginToken.charOffset);
- popDeclarationContext();
- // TODO(cstefantsova): Use actual type parameters.
- libraryBuilder
- .endNestedDeclaration(TypeParameterScopeKind.instanceMethod, "#method")
- .resolveNamedTypes([], libraryBuilder);
- // Skip the declaration. An error as already been produced by the parser.
-
if (!libraryBuilder.enableEnhancedEnumsInLibrary) {
addProblem(
templateExperimentNotEnabled.withArguments('enhanced-enums',
libraryBuilder.enableEnhancedEnumsVersionInLibrary.toText()),
beginToken.charOffset,
-1);
+ } else {
+ _endClassMethod(getOrSet, beginToken, beginParam, beginInitializers,
+ endToken, _MethodKind.enumConstructor);
}
}
@@ -3337,4 +3318,5 @@
mixinMethod,
extensionConstructor,
extensionMethod,
+ enumConstructor,
}
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 3c68b27..03de64a 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
@@ -2815,6 +2815,7 @@
void addEnum(
List<MetadataBuilder>? metadata,
String name,
+ List<TypeVariableBuilder>? typeVariables,
List<EnumConstantInfo?>? enumConstantInfos,
int startCharOffset,
int charOffset,
@@ -2829,7 +2830,11 @@
TypeParameterScopeBuilder declaration =
endNestedDeclaration(TypeParameterScopeKind.enumDeclaration, name)
..resolveNamedTypes([], this);
- EnumBuilder builder = new EnumBuilder(
+ Map<String, Builder> members = declaration.members!;
+ Map<String, MemberBuilder> constructors = declaration.constructors!;
+ Map<String, MemberBuilder> setters = declaration.setters!;
+
+ EnumBuilder enumBuilder = new EnumBuilder(
metadata,
name,
enumConstantInfos,
@@ -2839,12 +2844,44 @@
charEndOffset,
referencesFromIndexedClass,
new Scope(
- local: declaration.members!,
- setters: declaration.setters!,
+ local: members,
+ setters: setters,
parent: scope.withTypeVariables(<TypeVariableBuilder>[]),
debugName: "enum $name",
- isModifiable: false));
- addBuilder(name, builder, charOffset,
+ isModifiable: false),
+ new ConstructorScope(name, constructors));
+
+ Map<String, TypeVariableBuilder>? typeVariablesByName =
+ checkTypeVariables(typeVariables, enumBuilder);
+
+ void setParent(String name, MemberBuilder? member) {
+ while (member != null) {
+ member.parent = enumBuilder;
+ member = member.next as MemberBuilder?;
+ }
+ }
+
+ void setParentAndCheckConflicts(String name, Builder member) {
+ if (typeVariablesByName != null) {
+ TypeVariableBuilder? tv = typeVariablesByName[name];
+ if (tv != null) {
+ enumBuilder.addProblem(
+ templateConflictsWithTypeVariable.withArguments(name),
+ member.charOffset,
+ name.length,
+ context: [
+ messageConflictsWithTypeVariableCause.withLocation(
+ tv.fileUri!, tv.charOffset, name.length)
+ ]);
+ }
+ }
+ setParent(name, member as MemberBuilder);
+ }
+
+ members.forEach(setParentAndCheckConflicts);
+ constructors.forEach(setParentAndCheckConflicts);
+ setters.forEach(setParentAndCheckConflicts);
+ addBuilder(name, enumBuilder, charOffset,
getterReference: referencesFromIndexedClass?.cls.reference);
}
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 2f6b52c..e0779c4 100644
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -1409,8 +1409,6 @@
LibraryMacroApplicationData libraryMacroApplicationData =
new LibraryMacroApplicationData();
Library library = libraryBuilder.library;
- libraryMacroApplicationData.libraryApplications =
- computeApplications(library.annotations);
for (Class cls in library.classes) {
ClassMacroApplicationData classMacroApplicationData =
new ClassMacroApplicationData();
@@ -1438,17 +1436,7 @@
macroApplications;
}
}
- for (Typedef typedef in library.typedefs) {
- MacroApplications? macroApplications =
- computeApplications(typedef.annotations);
- if (macroApplications != null) {
- libraryMacroApplicationData.typedefApplications[typedef] =
- macroApplications;
- }
- }
- if (libraryMacroApplicationData.libraryApplications != null ||
- libraryMacroApplicationData.classData.isNotEmpty ||
- libraryMacroApplicationData.typedefApplications.isNotEmpty ||
+ if (libraryMacroApplicationData.classData.isNotEmpty ||
libraryMacroApplicationData.memberApplications.isNotEmpty) {
if (retainDataForTesting) {
dataForTesting!.macroApplicationData.libraryData[library] =
diff --git a/pkg/front_end/test/macros/data/package_config.json b/pkg/front_end/test/macros/data/package_config.json
index 97031ce..9de8189 100644
--- a/pkg/front_end/test/macros/data/package_config.json
+++ b/pkg/front_end/test/macros/data/package_config.json
@@ -6,8 +6,8 @@
"rootUri": "pkgs/macro/lib/"
},
{
- "name": "macro_builder",
- "rootUri": "pkgs/macro_builder/lib/"
+ "name": "_fe_analyzer_shared",
+ "rootUri": "../../../../_fe_analyzer_shared/lib/"
}
]
}
\ No newline at end of file
diff --git a/pkg/front_end/test/macros/data/pkgs/macro/lib/macro.dart b/pkg/front_end/test/macros/data/pkgs/macro/lib/macro.dart
index f79b175..d7bf92d 100644
--- a/pkg/front_end/test/macros/data/pkgs/macro/lib/macro.dart
+++ b/pkg/front_end/test/macros/data/pkgs/macro/lib/macro.dart
@@ -2,7 +2,7 @@
// 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:macro_builder/macro_builder.dart';
+import 'package:_fe_analyzer_shared/src/macros/api.dart';
macro class Macro1 implements Macro {
const Macro1();
diff --git a/pkg/front_end/test/macros/data/pkgs/macro_builder/lib/macro_builder.dart b/pkg/front_end/test/macros/data/pkgs/macro_builder/lib/macro_builder.dart
deleted file mode 100644
index 14354da..0000000
--- a/pkg/front_end/test/macros/data/pkgs/macro_builder/lib/macro_builder.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2021, 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.
-
-export 'src/macro.dart';
diff --git a/pkg/front_end/test/macros/data/pkgs/macro_builder/lib/src/macro.dart b/pkg/front_end/test/macros/data/pkgs/macro_builder/lib/src/macro.dart
deleted file mode 100644
index 434331b..0000000
--- a/pkg/front_end/test/macros/data/pkgs/macro_builder/lib/src/macro.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2021, 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.
-
-class Macro {}
diff --git a/pkg/front_end/test/macros/data/tests/declare_macro.dart b/pkg/front_end/test/macros/data/tests/declare_macro.dart
index e6d329e..056edbd 100644
--- a/pkg/front_end/test/macros/data/tests/declare_macro.dart
+++ b/pkg/front_end/test/macros/data/tests/declare_macro.dart
@@ -4,13 +4,13 @@
/*library:
compilationSequence=[
- package:macro_builder/src/macro.dart,
- main.dart|package:macro_builder/macro_builder.dart],
+ package:_fe_analyzer_shared/src/macros/api.dart,
+ main.dart],
declaredMacros=[MyMacro],
macrosAreAvailable
*/
-import 'package:macro_builder/macro_builder.dart';
+import 'package:_fe_analyzer_shared/src/macros/api.dart';
macro class MyMacro implements Macro {}
diff --git a/pkg/front_end/test/macros/data/tests/declare_vs_apply/macro_lib.dart b/pkg/front_end/test/macros/data/tests/declare_vs_apply/macro_lib.dart
index f1aac83..6deb22b 100644
--- a/pkg/front_end/test/macros/data/tests/declare_vs_apply/macro_lib.dart
+++ b/pkg/front_end/test/macros/data/tests/declare_vs_apply/macro_lib.dart
@@ -7,7 +7,7 @@
macrosAreAvailable
*/
-import 'package:macro_builder/macro_builder.dart';
+import 'package:_fe_analyzer_shared/src/macros/api.dart';
import 'macro_lib_dep.dart';
macro class Macro1 extends MacroBase implements Macro {
diff --git a/pkg/front_end/test/macros/data/tests/declare_vs_apply/main.dart b/pkg/front_end/test/macros/data/tests/declare_vs_apply/main.dart
index 868f08d..a710753 100644
--- a/pkg/front_end/test/macros/data/tests/declare_vs_apply/main.dart
+++ b/pkg/front_end/test/macros/data/tests/declare_vs_apply/main.dart
@@ -4,8 +4,8 @@
/*library:
compilationSequence=[
- apply_lib_dep.dart|macro_lib_dep.dart|main_lib_dep.dart|package:macro_builder/src/macro.dart,
- macro_lib.dart|package:macro_builder/macro_builder.dart,
+ apply_lib_dep.dart|macro_lib_dep.dart|main_lib_dep.dart|package:_fe_analyzer_shared/src/macros/api.dart,
+ macro_lib.dart,
apply_lib.dart|main.dart],
macrosAreAvailable
*/
diff --git a/pkg/front_end/test/macros/data/tests/direct_import.dart b/pkg/front_end/test/macros/data/tests/direct_import.dart
index f3484cd..a07f128 100644
--- a/pkg/front_end/test/macros/data/tests/direct_import.dart
+++ b/pkg/front_end/test/macros/data/tests/direct_import.dart
@@ -4,12 +4,12 @@
/*library:
compilationSequence=[
- package:macro_builder/src/macro.dart,
+ package:_fe_analyzer_shared/src/macros/api.dart,
main.dart],
macrosAreAvailable
*/
// ignore: unused_import
-import 'package:macro_builder/src/macro.dart';
+import 'package:_fe_analyzer_shared/src/macros/api.dart';
void main() {}
diff --git a/pkg/front_end/test/macros/data/tests/import_macro_builder.dart b/pkg/front_end/test/macros/data/tests/import_macro_builder.dart
index dca3012..a07f128 100644
--- a/pkg/front_end/test/macros/data/tests/import_macro_builder.dart
+++ b/pkg/front_end/test/macros/data/tests/import_macro_builder.dart
@@ -4,12 +4,12 @@
/*library:
compilationSequence=[
- package:macro_builder/src/macro.dart,
- main.dart|package:macro_builder/macro_builder.dart],
+ package:_fe_analyzer_shared/src/macros/api.dart,
+ main.dart],
macrosAreAvailable
*/
// ignore: unused_import
-import 'package:macro_builder/macro_builder.dart';
+import 'package:_fe_analyzer_shared/src/macros/api.dart';
void main() {}
diff --git a/pkg/front_end/test/macros/data/tests/import_macro_package.dart b/pkg/front_end/test/macros/data/tests/import_macro_package.dart
index 1fabb48..0c25eea 100644
--- a/pkg/front_end/test/macros/data/tests/import_macro_package.dart
+++ b/pkg/front_end/test/macros/data/tests/import_macro_package.dart
@@ -4,8 +4,8 @@
/*library:
compilationSequence=[
- package:macro_builder/src/macro.dart,
- package:macro/macro.dart|package:macro_builder/macro_builder.dart,
+ package:_fe_analyzer_shared/src/macros/api.dart,
+ package:macro/macro.dart,
main.dart],
macrosAreAvailable
*/
diff --git a/pkg/front_end/test/macros/data/tests/import_macro_source/macro_lib.dart b/pkg/front_end/test/macros/data/tests/import_macro_source/macro_lib.dart
index c08cbcd..536ad16 100644
--- a/pkg/front_end/test/macros/data/tests/import_macro_source/macro_lib.dart
+++ b/pkg/front_end/test/macros/data/tests/import_macro_source/macro_lib.dart
@@ -7,7 +7,7 @@
macrosAreAvailable
*/
-import 'package:macro_builder/macro_builder.dart';
+import 'package:_fe_analyzer_shared/src/macros/api.dart';
macro class Macro1 implements Macro {
const Macro1();
diff --git a/pkg/front_end/test/macros/data/tests/import_macro_source/main.dart b/pkg/front_end/test/macros/data/tests/import_macro_source/main.dart
index 5b109f4..dce865b 100644
--- a/pkg/front_end/test/macros/data/tests/import_macro_source/main.dart
+++ b/pkg/front_end/test/macros/data/tests/import_macro_source/main.dart
@@ -4,8 +4,8 @@
/*library:
compilationSequence=[
- package:macro_builder/src/macro.dart,
- macro_lib.dart|package:macro_builder/macro_builder.dart,
+ package:_fe_analyzer_shared/src/macros/api.dart,
+ macro_lib.dart,
main.dart],
macrosAreAvailable
*/
diff --git a/pkg/front_end/test/macros/data/tests/macro_declarations.dart b/pkg/front_end/test/macros/data/tests/macro_declarations.dart
index f5f5a5f..b6cb47f 100644
--- a/pkg/front_end/test/macros/data/tests/macro_declarations.dart
+++ b/pkg/front_end/test/macros/data/tests/macro_declarations.dart
@@ -4,8 +4,8 @@
/*library:
compilationSequence=[
- package:macro_builder/src/macro.dart,
- main.dart|package:macro_builder/macro_builder.dart],
+ package:_fe_analyzer_shared/src/macros/api.dart,
+ main.dart],
declaredMacros=[
Extends,
ExtendsAlias,
@@ -18,7 +18,7 @@
macrosAreAvailable
*/
-import 'package:macro_builder/macro_builder.dart';
+import 'package:_fe_analyzer_shared/src/macros/api.dart';
macro class Extends extends Macro {}
diff --git a/pkg/front_end/test/macros/data/tests/multiple_macros/macro_lib1.dart b/pkg/front_end/test/macros/data/tests/multiple_macros/macro_lib1.dart
index c08cbcd..536ad16 100644
--- a/pkg/front_end/test/macros/data/tests/multiple_macros/macro_lib1.dart
+++ b/pkg/front_end/test/macros/data/tests/multiple_macros/macro_lib1.dart
@@ -7,7 +7,7 @@
macrosAreAvailable
*/
-import 'package:macro_builder/macro_builder.dart';
+import 'package:_fe_analyzer_shared/src/macros/api.dart';
macro class Macro1 implements Macro {
const Macro1();
diff --git a/pkg/front_end/test/macros/data/tests/multiple_macros/macro_lib2a.dart b/pkg/front_end/test/macros/data/tests/multiple_macros/macro_lib2a.dart
index 729e7f1..fc0d199 100644
--- a/pkg/front_end/test/macros/data/tests/multiple_macros/macro_lib2a.dart
+++ b/pkg/front_end/test/macros/data/tests/multiple_macros/macro_lib2a.dart
@@ -7,7 +7,7 @@
macrosAreAvailable
*/
-import 'package:macro_builder/macro_builder.dart';
+import 'package:_fe_analyzer_shared/src/macros/api.dart';
macro class Macro2a implements Macro {
const Macro2a();
diff --git a/pkg/front_end/test/macros/data/tests/multiple_macros/macro_lib2b.dart b/pkg/front_end/test/macros/data/tests/multiple_macros/macro_lib2b.dart
index df143f5..1c2e947 100644
--- a/pkg/front_end/test/macros/data/tests/multiple_macros/macro_lib2b.dart
+++ b/pkg/front_end/test/macros/data/tests/multiple_macros/macro_lib2b.dart
@@ -8,7 +8,7 @@
macrosAreAvailable
*/
-import 'package:macro_builder/macro_builder.dart';
+import 'package:_fe_analyzer_shared/src/macros/api.dart';
import 'macro_lib2a.dart';
@Macro2a()
diff --git a/pkg/front_end/test/macros/data/tests/multiple_macros/main.dart b/pkg/front_end/test/macros/data/tests/multiple_macros/main.dart
index 9dee592..9a3839e 100644
--- a/pkg/front_end/test/macros/data/tests/multiple_macros/main.dart
+++ b/pkg/front_end/test/macros/data/tests/multiple_macros/main.dart
@@ -4,8 +4,8 @@
/*library:
compilationSequence=[
- package:macro_builder/src/macro.dart,
- macro_lib1.dart|macro_lib2a.dart|package:macro_builder/macro_builder.dart,
+ package:_fe_analyzer_shared/src/macros/api.dart,
+ macro_lib1.dart|macro_lib2a.dart,
macro_lib2b.dart,
main.dart],
macrosAreApplied,
diff --git a/pkg/front_end/test/macros/data/tests/use_macro_package.dart b/pkg/front_end/test/macros/data/tests/use_macro_package.dart
index 74f18ff..a830bb3 100644
--- a/pkg/front_end/test/macros/data/tests/use_macro_package.dart
+++ b/pkg/front_end/test/macros/data/tests/use_macro_package.dart
@@ -3,15 +3,13 @@
// BSD-style license that can be found in the LICENSE file.
/*library:
- appliedMacros=[Macro3],
compilationSequence=[
- package:macro_builder/src/macro.dart,
- package:macro/macro.dart|package:macro_builder/macro_builder.dart,
+ package:_fe_analyzer_shared/src/macros/api.dart,
+ package:macro/macro.dart,
main.dart],
macrosAreApplied,
macrosAreAvailable
*/
-@Macro3()
library use_macro_package;
import 'package:macro/macro.dart';
@@ -26,6 +24,10 @@
macrosAreApplied
*/
class Class1 {
+ @Macro3()
+ /*member: Class1.:appliedMacros=[Macro3]*/
+ Class1();
+
@Macro1()
@Macro2()
/*member: Class1.method:appliedMacros=[
@@ -48,3 +50,21 @@
@NonMacro()
var field;
}
+
+@Macro1()
+/*member: field:appliedMacros=[Macro1]*/
+var field;
+
+extension Extension on int {
+ @Macro1()
+ /*member: Extension|field:appliedMacros=[Macro1]*/
+ static var field;
+
+ @Macro2()
+ /*member: Extension|method:appliedMacros=[Macro2]*/
+ void method() {}
+
+ @Macro3()
+ /*member: Extension|staticMethod:appliedMacros=[Macro3]*/
+ static void staticMethod() {}
+}
diff --git a/pkg/front_end/test/macros/data/tests/use_macro_source/macro_lib.dart b/pkg/front_end/test/macros/data/tests/use_macro_source/macro_lib.dart
index f3767a5..9369d7d 100644
--- a/pkg/front_end/test/macros/data/tests/use_macro_source/macro_lib.dart
+++ b/pkg/front_end/test/macros/data/tests/use_macro_source/macro_lib.dart
@@ -9,7 +9,7 @@
macrosAreAvailable
*/
-import 'package:macro_builder/macro_builder.dart';
+import 'package:_fe_analyzer_shared/src/macros/api.dart';
macro class Macro1 implements Macro {
const Macro1();
diff --git a/pkg/front_end/test/macros/data/tests/use_macro_source/main.dart b/pkg/front_end/test/macros/data/tests/use_macro_source/main.dart
index 930eb5c..7c78a01 100644
--- a/pkg/front_end/test/macros/data/tests/use_macro_source/main.dart
+++ b/pkg/front_end/test/macros/data/tests/use_macro_source/main.dart
@@ -4,8 +4,8 @@
/*library:
compilationSequence=[
- package:macro_builder/src/macro.dart,
- macro_lib.dart|package:macro_builder/macro_builder.dart,
+ package:_fe_analyzer_shared/src/macros/api.dart,
+ macro_lib.dart,
main.dart],
macrosAreApplied,
macrosAreAvailable
diff --git a/pkg/front_end/test/macros/macro_test.dart b/pkg/front_end/test/macros/macro_test.dart
index c1aa33e..6042432 100644
--- a/pkg/front_end/test/macros/macro_test.dart
+++ b/pkg/front_end/test/macros/macro_test.dart
@@ -112,10 +112,6 @@
return macroApplicationData.libraryData[library];
}
- MacroApplications? getLibraryMacroApplications(Library library) {
- return getLibraryMacroApplicationData(library)?.libraryApplications;
- }
-
ClassMacroApplicationData? getClassMacroApplicationData(Class cls) {
LibraryMacroApplicationData? applicationData =
getLibraryMacroApplicationData(cls.enclosingLibrary);
@@ -184,7 +180,6 @@
if (getLibraryMacroApplicationData(node) != null) {
features.add(Tags.macrosAreApplied);
}
- registerMacroApplications(features, getLibraryMacroApplications(node));
return features;
}
diff --git a/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.strong.expect
index b4016d7..6ad6b41 100644
--- a/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.strong.expect
+++ b/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.strong.expect
@@ -1,4 +1,11 @@
library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart:11:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+// const E.named(int value);
+// ^^^^^
+//
import self as self;
import "dart:core" as core;
@@ -10,6 +17,11 @@
const constructor •(core::int index, core::String name) → self::E
: super core::_Enum::•(index, name)
;
+ const constructor named(core::int value) → self::E
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart:11:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+ const E.named(int value);
+ ^^^^^"
+ ;
method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
}
diff --git a/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.strong.transformed.expect
index b4016d7..6ad6b41 100644
--- a/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.strong.transformed.expect
@@ -1,4 +1,11 @@
library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart:11:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+// const E.named(int value);
+// ^^^^^
+//
import self as self;
import "dart:core" as core;
@@ -10,6 +17,11 @@
const constructor •(core::int index, core::String name) → self::E
: super core::_Enum::•(index, name)
;
+ const constructor named(core::int value) → self::E
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart:11:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+ const E.named(int value);
+ ^^^^^"
+ ;
method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
}
diff --git a/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.expect
index a7d67d3..5081c27 100644
--- a/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.expect
+++ b/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.expect
@@ -1,4 +1,11 @@
library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart:11:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+// const E.named(int value);
+// ^^^^^
+//
import self as self;
import "dart:core" as core;
@@ -10,6 +17,11 @@
const constructor •(core::int index, core::String name) → self::E
: super core::_Enum::•(index, name)
;
+ const constructor named(core::int value) → self::E
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart:11:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+ const E.named(int value);
+ ^^^^^"
+ ;
method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
}
diff --git a/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.modular.expect
index a7d67d3..5081c27 100644
--- a/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.modular.expect
@@ -1,4 +1,11 @@
library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart:11:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+// const E.named(int value);
+// ^^^^^
+//
import self as self;
import "dart:core" as core;
@@ -10,6 +17,11 @@
const constructor •(core::int index, core::String name) → self::E
: super core::_Enum::•(index, name)
;
+ const constructor named(core::int value) → self::E
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart:11:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+ const E.named(int value);
+ ^^^^^"
+ ;
method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
}
diff --git a/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.outline.expect
index 61d174a..584e232 100644
--- a/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.outline.expect
@@ -1,4 +1,11 @@
library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart:11:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+// const E.named(int value);
+// ^^^^^
+//
import self as self;
import "dart:core" as core;
@@ -10,6 +17,11 @@
const constructor •(core::int index, core::String name) → self::E
: super core::_Enum::•(index, name)
;
+ const constructor named(core::int value) → self::E
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart:11:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+ const E.named(int value);
+ ^^^^^"
+ ;
method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
}
diff --git a/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.transformed.expect
index a7d67d3..5081c27 100644
--- a/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart.weak.transformed.expect
@@ -1,4 +1,11 @@
library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart:11:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+// const E.named(int value);
+// ^^^^^
+//
import self as self;
import "dart:core" as core;
@@ -10,6 +17,11 @@
const constructor •(core::int index, core::String name) → self::E
: super core::_Enum::•(index, name)
;
+ const constructor named(core::int value) → self::E
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/enhanced_enums/entries_with_type_arguments.dart:11:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+ const E.named(int value);
+ ^^^^^"
+ ;
method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
}
diff --git a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.strong.expect
index b209df1..43b585e 100644
--- a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.strong.expect
+++ b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.strong.expect
@@ -1,10 +1,22 @@
library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart:8:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+// const E.b();
+// ^
+//
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
static const field core::List<self::E> values = #C4;
static const field self::E a = #C3;
+ const constructor b() → self::E
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart:8:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+ const E.b();
+ ^"
+ ;
const constructor •(core::int index, core::String name) → self::E
: super core::_Enum::•(index, name)
;
diff --git a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.strong.transformed.expect
index b209df1..43b585e 100644
--- a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.strong.transformed.expect
@@ -1,10 +1,22 @@
library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart:8:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+// const E.b();
+// ^
+//
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
static const field core::List<self::E> values = #C4;
static const field self::E a = #C3;
+ const constructor b() → self::E
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart:8:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+ const E.b();
+ ^"
+ ;
const constructor •(core::int index, core::String name) → self::E
: super core::_Enum::•(index, name)
;
diff --git a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.expect
index 5cc89c4..d44bcfc 100644
--- a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.expect
+++ b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.expect
@@ -1,10 +1,22 @@
library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart:8:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+// const E.b();
+// ^
+//
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
static const field core::List<self::E> values = #C4;
static const field self::E a = #C3;
+ const constructor b() → self::E
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart:8:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+ const E.b();
+ ^"
+ ;
const constructor •(core::int index, core::String name) → self::E
: super core::_Enum::•(index, name)
;
diff --git a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.modular.expect
index 5cc89c4..d44bcfc 100644
--- a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.modular.expect
@@ -1,10 +1,22 @@
library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart:8:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+// const E.b();
+// ^
+//
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
static const field core::List<self::E> values = #C4;
static const field self::E a = #C3;
+ const constructor b() → self::E
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart:8:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+ const E.b();
+ ^"
+ ;
const constructor •(core::int index, core::String name) → self::E
: super core::_Enum::•(index, name)
;
diff --git a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.outline.expect
index 2732493..b0ba4b4 100644
--- a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.outline.expect
@@ -1,10 +1,22 @@
library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart:8:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+// const E.b();
+// ^
+//
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
static const field core::List<self::E> values = const <self::E>[self::E::a];
static const field self::E a = const self::E::•(0, "a");
+ const constructor b() → self::E
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart:8:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+ const E.b();
+ ^"
+ ;
const constructor •(core::int index, core::String name) → self::E
: super core::_Enum::•(index, name)
;
diff --git a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.transformed.expect
index 5cc89c4..d44bcfc 100644
--- a/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart.weak.transformed.expect
@@ -1,10 +1,22 @@
library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart:8:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+// const E.b();
+// ^
+//
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
static const field core::List<self::E> values = #C4;
static const field self::E a = #C3;
+ const constructor b() → self::E
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/enhanced_enums/qualified_names_with_no_type_arguments.dart:8:9: Error: The superclass, '_Enum', has no unnamed constructor that takes no arguments.
+ const E.b();
+ ^"
+ ;
const constructor •(core::int index, core::String name) → self::E
: super core::_Enum::•(index, name)
;
diff --git a/tools/VERSION b/tools/VERSION
index 3999cce..bc4419c 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 16
PATCH 0
-PRERELEASE 135
+PRERELEASE 136
PRERELEASE_PATCH 0
\ No newline at end of file