Version 2.17.0-144.0.dev
Merge commit 'cc1366ee73806e7f0b6132245be77da0e68b52de' into 'dev'
diff --git a/docs/process/breaking-changes.md b/docs/process/breaking-changes.md
index 4ea8bda..65d85f7 100644
--- a/docs/process/breaking-changes.md
+++ b/docs/process/breaking-changes.md
@@ -29,7 +29,7 @@
* Must contain no static analysis **errors**.
-* Must not rely on a certain runtime **error** being thrown (in other words,
+* Must not rely on a certain runtime **error** being thrown (in other words,
a new SDK might throw fewer errors than an old SDK).
* Must access libraries via the public API (for example, must not reach into
@@ -45,6 +45,13 @@
Compatibility is only considered between stable releases (i.e. releases from the
[Dart stable channel](https://dart.dev/tools/sdk/archive#stable-channel)).
+## Breaking change implementation timing
+
+To avoid shipping features that have not been thoroughly vetted, we implement a
+policy of not including breaking changes in the final beta before a release.
+Breaking changes must be included in the beta before the final beta to be
+considered for the next stable release.
+
## Breaking change notification
Anyone wishing to make a breaking change to Dart is expected to perform the
@@ -76,7 +83,7 @@
* A request that developers may leave comments in the linked issue, if this
breaking change poses a severe problem.
-Once you have sent the announce email, please let devoncarew@ know in order
+Once you have sent the announce email, please let kevinjchisholm@ know in order
to start the review and approval process.
### Step 2: Approval
diff --git a/pkg/_fe_analyzer_shared/lib/src/testing/id_testing.dart b/pkg/_fe_analyzer_shared/lib/src/testing/id_testing.dart
index ca35c17..f29fc9f 100644
--- a/pkg/_fe_analyzer_shared/lib/src/testing/id_testing.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/testing/id_testing.dart
@@ -844,9 +844,11 @@
actualData[marker] = {};
void addActualData(Uri uri, Map<Id, ActualData<T>> actualData) {
- // ignore: unnecessary_null_comparison
- assert(uri != null && testData.code.containsKey(uri) ||
- actualData.isEmpty);
+ assert(
+ // ignore: unnecessary_null_comparison
+ uri != null && testData.code.containsKey(uri) ||
+ actualData.isEmpty,
+ "Unexpected data ${actualData} for $uri");
// ignore: unnecessary_null_comparison
if (uri == null || actualData.isEmpty) {
// TODO(johnniwinther): Avoid collecting data without
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 1e2e07c..d3aa340 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -438,12 +438,21 @@
loader.resolveTypes(augmentationLibraries);
}
- /// Builds [augmentationLibrary] to the state expected after applying phase
+ /// Builds [augmentationLibraries] to the state expected after applying phase
/// 2 macros.
- void _buildForPhase2(SourceLibraryBuilder augmentationLibrary) {
- augmentationLibrary.finishTypeVariables(objectClassBuilder, dynamicType);
- augmentationLibrary.build(loader.coreLibrary, modifyTarget: false);
- augmentationLibrary.resolveConstructors();
+ void _buildForPhase2(List<SourceLibraryBuilder> augmentationLibraries) {
+ loader.finishTypeVariables(
+ augmentationLibraries, objectClassBuilder, dynamicType);
+ for (SourceLibraryBuilder augmentationLibrary in augmentationLibraries) {
+ augmentationLibrary.build(loader.coreLibrary, modifyTarget: false);
+ }
+ loader.resolveConstructors(augmentationLibraries);
+ }
+
+ /// Builds [augmentationLibraries] to the state expected after applying phase
+ /// 3 macros.
+ void _buildForPhase3(List<SourceLibraryBuilder> augmentationLibraries) {
+ // Currently there nothing to do here. The method is left in for symmetry.
}
Future<BuildResult> buildOutlines({CanonicalName? nameRoot}) async {
@@ -533,8 +542,11 @@
benchmarker?.enterPhase(BenchmarkPhases.outline_applyDeclarationMacros);
await macroApplications.applyDeclarationsMacros(loader.hierarchyBuilder,
(SourceLibraryBuilder augmentationLibrary) async {
- await _buildForPhase1([augmentationLibrary]);
- _buildForPhase2(augmentationLibrary);
+ List<SourceLibraryBuilder> augmentationLibraries = [
+ augmentationLibrary
+ ];
+ await _buildForPhase1(augmentationLibraries);
+ _buildForPhase2(augmentationLibraries);
});
}
@@ -620,8 +632,17 @@
return withCrashReporting<BuildResult>(() async {
ticker.logMs("Building component");
+ if (macroApplications != null) {
+ benchmarker?.enterPhase(BenchmarkPhases.body_applyDefinitionMacros);
+ List<SourceLibraryBuilder> augmentationLibraries =
+ await macroApplications.applyDefinitionMacros();
+ await _buildForPhase1(augmentationLibraries);
+ _buildForPhase2(augmentationLibraries);
+ _buildForPhase3(augmentationLibraries);
+ }
+
benchmarker?.enterPhase(BenchmarkPhases.body_buildBodies);
- await loader.buildBodies();
+ await loader.buildBodies(loader.sourceLibraryBuilders);
benchmarker?.enterPhase(BenchmarkPhases.body_finishSynthesizedParameters);
finishSynthesizedParameters();
@@ -636,11 +657,6 @@
benchmarker?.enterPhase(BenchmarkPhases.body_collectSourceClasses);
List<SourceClassBuilder>? sourceClasses = loader.collectSourceClasses();
- if (macroApplications != null) {
- benchmarker?.enterPhase(BenchmarkPhases.body_applyDefinitionMacros);
- await macroApplications.applyDefinitionMacros();
- }
-
benchmarker?.enterPhase(BenchmarkPhases.body_finishNativeMethods);
loader.finishNativeMethods();
diff --git a/pkg/front_end/lib/src/fasta/kernel/macro.dart b/pkg/front_end/lib/src/fasta/kernel/macro.dart
index 554ec8f..048df44 100644
--- a/pkg/front_end/lib/src/fasta/kernel/macro.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/macro.dart
@@ -35,6 +35,8 @@
bool enableMacros = false;
+const String augmentationScheme = 'org-dartlang-augmentation';
+
final Uri macroLibraryUri =
Uri.parse('package:_fe_analyzer_shared/src/macros/api.dart');
const String macroClassName = 'Macro';
@@ -80,6 +82,7 @@
class MacroApplicationDataForTesting {
Map<SourceLibraryBuilder, LibraryMacroApplicationData> libraryData = {};
Map<SourceLibraryBuilder, String> libraryTypesResult = {};
+ Map<SourceLibraryBuilder, String> libraryDefinitionResult = {};
Map<SourceClassBuilder, List<macro.MacroExecutionResult>> classTypesResults =
{};
Map<SourceClassBuilder, List<macro.MacroExecutionResult>>
@@ -330,7 +333,9 @@
macro.MacroExecutionResult result =
await _macroExecutor.executeTypesPhase(
macroApplication.instanceIdentifier, declaration);
- results.add(result);
+ if (result.isNotEmpty) {
+ results.add(result);
+ }
}
}
@@ -351,19 +356,29 @@
for (_ApplicationData macroApplication in _applicationData) {
List<macro.MacroExecutionResult> executionResults =
await _applyTypeMacros(macroApplication);
- (results[macroApplication.libraryBuilder] ??= [])
- .addAll(executionResults);
+ if (executionResults.isNotEmpty) {
+ (results[macroApplication.libraryBuilder] ??= [])
+ .addAll(executionResults);
+ }
}
for (MapEntry<SourceLibraryBuilder, List<macro.MacroExecutionResult>> entry
in results.entries) {
SourceLibraryBuilder sourceLibraryBuilder = entry.key;
- String result = _macroExecutor.buildAugmentationLibrary(
- entry.value, _resolveIdentifier);
- if (retainDataForTesting) {
- dataForTesting?.libraryTypesResult[sourceLibraryBuilder] = result;
+ assert(entry.value.isNotEmpty);
+ String result = _macroExecutor
+ .buildAugmentationLibrary(entry.value, _resolveIdentifier)
+ .trim();
+ assert(
+ result.trim().isNotEmpty,
+ "Empty types phase augmentation library source for "
+ "$sourceLibraryBuilder}");
+ if (result.isNotEmpty) {
+ if (retainDataForTesting) {
+ dataForTesting?.libraryTypesResult[sourceLibraryBuilder] = result;
+ }
+ augmentationLibraries
+ .add(await sourceLibraryBuilder.createAugmentationLibrary(result));
}
- augmentationLibraries
- .add(await sourceLibraryBuilder.createAugmentationLibrary(result));
}
return augmentationLibraries;
}
@@ -382,14 +397,16 @@
declaration,
typeResolver,
classIntrospector);
- String source = _macroExecutor
- .buildAugmentationLibrary([result], _resolveIdentifier);
- SourceLibraryBuilder augmentationLibrary = await applicationData
- .libraryBuilder
- .createAugmentationLibrary(source);
- await onAugmentationLibrary(augmentationLibrary);
- if (retainDataForTesting) {
- results.add(result);
+ if (result.isNotEmpty) {
+ String source = _macroExecutor
+ .buildAugmentationLibrary([result], _resolveIdentifier);
+ SourceLibraryBuilder augmentationLibrary = await applicationData
+ .libraryBuilder
+ .createAugmentationLibrary(source);
+ await onAugmentationLibrary(augmentationLibrary);
+ if (retainDataForTesting) {
+ results.add(result);
+ }
}
}
}
@@ -433,7 +450,9 @@
typeResolver,
classIntrospector,
typeDeclarationResolver);
- results.add(result);
+ if (result.isNotEmpty) {
+ results.add(result);
+ }
}
}
if (retainDataForTesting) {
@@ -450,11 +469,34 @@
late macro.TypeDeclarationResolver typeDeclarationResolver;
- Future<void> applyDefinitionMacros() async {
+ Future<List<SourceLibraryBuilder>> applyDefinitionMacros() async {
typeDeclarationResolver = new _TypeDeclarationResolver();
+ List<SourceLibraryBuilder> augmentationLibraries = [];
+ Map<SourceLibraryBuilder, List<macro.MacroExecutionResult>> results = {};
for (_ApplicationData macroApplication in _applicationData) {
- await _applyDefinitionMacros(macroApplication);
+ List<macro.MacroExecutionResult> executionResults =
+ await _applyDefinitionMacros(macroApplication);
+ if (executionResults.isNotEmpty) {
+ (results[macroApplication.libraryBuilder] ??= [])
+ .addAll(executionResults);
+ }
}
+ for (MapEntry<SourceLibraryBuilder, List<macro.MacroExecutionResult>> entry
+ in results.entries) {
+ SourceLibraryBuilder sourceLibraryBuilder = entry.key;
+ String result = _macroExecutor.buildAugmentationLibrary(
+ entry.value, _resolveIdentifier);
+ assert(
+ result.trim().isNotEmpty,
+ "Empty definitions phase augmentation library source for "
+ "$sourceLibraryBuilder}");
+ if (retainDataForTesting) {
+ dataForTesting?.libraryDefinitionResult[sourceLibraryBuilder] = result;
+ }
+ augmentationLibraries
+ .add(await sourceLibraryBuilder.createAugmentationLibrary(result));
+ }
+ return augmentationLibraries;
}
void close() {
@@ -708,11 +750,7 @@
typeBuilder: typeBuilder,
libraryBuilder: libraryBuilder,
id: macro.RemoteInstance.uniqueId,
- // TODO: We probably shouldn't be including the qualifier
- // here. Kernel should probably have its own implementation
- // of Identifier which holds on to the qualified reference
- // instead.
- name: '${name.qualifier}.${name.name}'),
+ name: name.name),
typeArguments: typeArguments,
isNullable: isNullable);
}
@@ -993,3 +1031,7 @@
_ApplicationData(this.libraryBuilder, this.builder, this.declaration,
this.macroApplications);
}
+
+extension on macro.MacroExecutionResult {
+ bool get isNotEmpty => augmentations.isNotEmpty;
+}
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 970cc29..5030ef3 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
@@ -66,6 +66,7 @@
import '../kernel/internal_ast.dart';
import '../kernel/kernel_helper.dart';
import '../kernel/load_library_builder.dart';
+import '../kernel/macro.dart';
import '../kernel/type_algorithms.dart'
show
NonSimplicityIssue,
@@ -519,8 +520,8 @@
/// unparsed library on the [loader].
SourceLibraryBuilder createAugmentationLibrary(String source) {
int index = _patchLibraries?.length ?? 0;
- Uri uri = new Uri(
- scheme: 'org-dartlang-augmentation', path: '${fileUri.path}-$index');
+ Uri uri =
+ new Uri(scheme: augmentationScheme, path: '${fileUri.path}-$index');
SourceLibraryBuilder augmentationLibrary = new SourceLibraryBuilder(
fileUri: uri,
importUri: uri,
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 57a4561..68f2d84 100644
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -647,9 +647,9 @@
}
}
- Future<Null> buildBodies() async {
+ Future<Null> buildBodies(List<SourceLibraryBuilder> libraryBuilders) async {
assert(_coreLibrary != null);
- for (SourceLibraryBuilder library in sourceLibraryBuilders) {
+ for (SourceLibraryBuilder library in libraryBuilders) {
currentUriForCrashReporting = library.importUri;
await buildBody(library);
}
diff --git a/pkg/front_end/lib/src/testing/id_testing_helper.dart b/pkg/front_end/lib/src/testing/id_testing_helper.dart
index be478b3..102912e 100644
--- a/pkg/front_end/lib/src/testing/id_testing_helper.dart
+++ b/pkg/front_end/lib/src/testing/id_testing_helper.dart
@@ -25,6 +25,7 @@
import '../api_prototype/terminal_color_support.dart'
show printDiagnosticMessage;
import '../base/common.dart';
+import '../fasta/kernel/macro.dart';
import '../fasta/messages.dart' show FormattedMessage;
import '../kernel_generator_impl.dart' show InternalCompilerResult;
import 'compiler_common.dart' show compileScript, toTestUri;
@@ -380,6 +381,10 @@
Map<Id, ActualData<T>> globalData = <Id, ActualData<T>>{};
Map<Id, ActualData<T>> actualMapForUri(Uri? uri) {
+ if (uri?.scheme == augmentationScheme) {
+ throw new UnsupportedError(
+ "Annotations are not support on augmentation uris.");
+ }
return actualMaps.putIfAbsent(uri ?? nullUri, () => <Id, ActualData<T>>{});
}
@@ -391,9 +396,15 @@
Map<Uri, Map<int, List<FormattedMessage>>> errorMap = {};
for (FormattedMessage error in errors) {
+ Uri? uri = error.uri;
+ bool isAugmentation = uri?.scheme == augmentationScheme;
+ if (isAugmentation) {
+ uri = testData.entryPoint;
+ }
Map<int, List<FormattedMessage>> map =
- errorMap.putIfAbsent(error.uri ?? nullUri, () => {});
- List<FormattedMessage> list = map.putIfAbsent(error.charOffset, () => []);
+ errorMap.putIfAbsent(uri ?? nullUri, () => {});
+ List<FormattedMessage> list =
+ map.putIfAbsent(isAugmentation ? -1 : error.charOffset, () => []);
list.add(error);
}
@@ -418,7 +429,14 @@
Uri uri = node is Library
? node.fileUri
: (node is Member ? node.fileUri : node.location!.file);
- return actualMaps.putIfAbsent(uri, () => <Id, ActualData<T>>{});
+ if (uri.scheme == augmentationScheme) {
+ TreeNode library = node;
+ while (library is! Library) {
+ library = library.parent!;
+ }
+ uri = library.fileUri;
+ }
+ return actualMapForUri(uri);
}
void processMember(Member member, Map<Id, ActualData<T>> actualMap) {
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.expect
index c4af2cb..a931181 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.expect
@@ -326,13 +326,13 @@
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
- beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+ beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
handleIdentifier(y, fieldDeclaration)
handleNoFieldInitializer(;)
- endClassFields(null, null, null, null, null, null, 1, int, ;)
+ endClassFields(null, null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(C)
endMetadataStar(0)
@@ -468,13 +468,13 @@
beginMetadataStar(final)
endMetadataStar(0)
beginMember()
- beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+ beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
handleIdentifier(y, fieldDeclaration)
handleNoFieldInitializer(;)
- endClassFields(null, null, null, null, null, final, 1, final, ;)
+ endClassFields(null, null, null, null, null, null, final, 1, final, ;)
endMember()
beginMetadataStar(E)
endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.intertwined.expect
index bd0147c..290de57 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411.dart.intertwined.expect
@@ -6,8 +6,7 @@
parseMetadataStar()
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(, class)
+ parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -122,8 +121,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -256,8 +254,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -398,8 +395,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -585,8 +581,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -614,16 +609,16 @@
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: beginMember()
- parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', y, DeclarationKind.Class, C, false)
- listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+ parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleType', y, DeclarationKind.Class, C, false)
+ listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
listener: handleIdentifier(y, fieldDeclaration)
- parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.Class, C)
+ parseFieldInitializerOpt(y, y, null, null, null, null, null, DeclarationKind.Class, C)
listener: handleNoFieldInitializer(;)
- listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+ listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
listener: endMember()
notEofOrValue(}, C)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -736,8 +731,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -873,8 +867,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -902,16 +895,16 @@
listener: beginMetadataStar(final)
listener: endMetadataStar(0)
listener: beginMember()
- parseFields({, null, null, null, null, null, final, final, Instance of 'SimpleType', y, DeclarationKind.Class, E, false)
- listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+ parseFields({, null, null, null, null, null, null, final, final, Instance of 'SimpleType', y, DeclarationKind.Class, E, false)
+ listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
listener: handleIdentifier(y, fieldDeclaration)
- parseFieldInitializerOpt(y, y, null, null, null, final, DeclarationKind.Class, E)
+ parseFieldInitializerOpt(y, y, null, null, null, null, final, DeclarationKind.Class, E)
listener: handleNoFieldInitializer(;)
- listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+ listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
listener: endMember()
notEofOrValue(}, E)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, E)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.expect
index b416e9d..5001a0f 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.expect
@@ -297,13 +297,13 @@
beginMetadataStar(int)
endMetadataStar(0)
beginMember()
- beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+ beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
handleIdentifier(y, fieldDeclaration)
handleNoFieldInitializer(;)
- endClassFields(null, null, null, null, null, null, 1, int, ;)
+ endClassFields(null, null, null, null, null, null, null, 1, int, ;)
endMember()
beginMetadataStar(C)
endMetadataStar(0)
@@ -437,13 +437,13 @@
beginMetadataStar(final)
endMetadataStar(0)
beginMember()
- beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+ beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
handleIdentifier(int, typeReference)
handleNoTypeArguments(y)
handleType(int, null)
handleIdentifier(y, fieldDeclaration)
handleNoFieldInitializer(;)
- endClassFields(null, null, null, null, null, final, 1, final, ;)
+ endClassFields(null, null, null, null, null, null, final, 1, final, ;)
endMember()
beginMetadataStar(E)
endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.intertwined.expect
index d3c0fc3..2366abd 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime.dart.intertwined.expect
@@ -6,8 +6,7 @@
parseMetadataStar()
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(, class)
+ parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -122,8 +121,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -253,8 +251,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -392,8 +389,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -576,8 +572,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -605,16 +600,16 @@
listener: beginMetadataStar(int)
listener: endMetadataStar(0)
listener: beginMember()
- parseFields({, null, null, null, null, null, null, {, Instance of 'SimpleType', y, DeclarationKind.Class, C, false)
- listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, {)
+ parseFields({, null, null, null, null, null, null, null, {, Instance of 'SimpleType', y, DeclarationKind.Class, C, false)
+ listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, null, {)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
listener: handleIdentifier(y, fieldDeclaration)
- parseFieldInitializerOpt(y, y, null, null, null, null, DeclarationKind.Class, C)
+ parseFieldInitializerOpt(y, y, null, null, null, null, null, DeclarationKind.Class, C)
listener: handleNoFieldInitializer(;)
- listener: endClassFields(null, null, null, null, null, null, 1, int, ;)
+ listener: endClassFields(null, null, null, null, null, null, null, 1, int, ;)
listener: endMember()
notEofOrValue(}, C)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, C)
@@ -724,8 +719,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -858,8 +852,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -887,16 +880,16 @@
listener: beginMetadataStar(final)
listener: endMetadataStar(0)
listener: beginMember()
- parseFields({, null, null, null, null, null, final, final, Instance of 'SimpleType', y, DeclarationKind.Class, E, false)
- listener: beginFields(DeclarationKind.Class, null, null, null, null, null, final, {)
+ parseFields({, null, null, null, null, null, null, final, final, Instance of 'SimpleType', y, DeclarationKind.Class, E, false)
+ listener: beginFields(DeclarationKind.Class, null, null, null, null, null, null, final, {)
listener: handleIdentifier(int, typeReference)
listener: handleNoTypeArguments(y)
listener: handleType(int, null)
ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
listener: handleIdentifier(y, fieldDeclaration)
- parseFieldInitializerOpt(y, y, null, null, null, final, DeclarationKind.Class, E)
+ parseFieldInitializerOpt(y, y, null, null, null, null, final, DeclarationKind.Class, E)
listener: handleNoFieldInitializer(;)
- listener: endClassFields(null, null, null, null, null, final, 1, final, ;)
+ listener: endClassFields(null, null, null, null, null, null, final, 1, final, ;)
listener: endMember()
notEofOrValue(}, E)
parseClassOrMixinOrExtensionOrEnumMemberImpl(;, DeclarationKind.Class, E)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.intertwined.expect
index eb2c5841..b6f199c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48411_prime_1.dart.intertwined.expect
@@ -6,8 +6,7 @@
parseMetadataStar()
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(, class)
+ parseTopLevelKeywordDeclaration(, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -104,7 +103,7 @@
listener: beginMetadataStar(0)
listener: endMetadataStar(0)
listener: beginMember()
- recoverFromInvalidMember(;, ;, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, C)
+ recoverFromInvalidMember(;, ;, null, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, C)
reportRecoverableErrorWithToken(0, Instance of 'Template<(Token) => Message>')
listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '0'., null, {lexeme: 0}], 0, 0)
listener: handleInvalidMember(0)
@@ -115,7 +114,7 @@
listener: beginMetadataStar(;)
listener: endMetadataStar(0)
listener: beginMember()
- recoverFromInvalidMember(0, 0, null, null, null, null, null, null, 0, Instance of 'NoType', null, DeclarationKind.Class, C)
+ recoverFromInvalidMember(0, 0, null, null, null, null, null, null, null, 0, Instance of 'NoType', null, DeclarationKind.Class, C)
reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
listener: handleInvalidMember(;)
@@ -128,8 +127,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -228,7 +226,7 @@
listener: beginMetadataStar(null)
listener: endMetadataStar(0)
listener: beginMember()
- recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
+ recoverFromInvalidMember(}, }, null, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got 'null'., null, {lexeme: null}], null, null)
listener: handleInvalidMember(null)
@@ -239,7 +237,7 @@
listener: beginMetadataStar(=)
listener: endMetadataStar(0)
listener: beginMember()
- recoverFromInvalidMember(null, null, null, null, null, null, null, null, null, Instance of 'NoType', null, DeclarationKind.Class, C)
+ recoverFromInvalidMember(null, null, null, null, null, null, null, null, null, null, Instance of 'NoType', null, DeclarationKind.Class, C)
parseInvalidOperatorDeclaration(null, null, null, null, null, null, null, null, DeclarationKind.Class, C)
reportRecoverableError(=, MissingOperatorKeyword)
listener: handleRecoverableError(MissingOperatorKeyword, =, =)
@@ -284,7 +282,7 @@
listener: beginMetadataStar(0)
listener: endMetadataStar(0)
listener: beginMember()
- recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
+ recoverFromInvalidMember(}, }, null, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, C)
reportRecoverableErrorWithToken(0, Instance of 'Template<(Token) => Message>')
listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '0'., null, {lexeme: 0}], 0, 0)
listener: handleInvalidMember(0)
@@ -295,7 +293,7 @@
listener: beginMetadataStar(;)
listener: endMetadataStar(0)
listener: beginMember()
- recoverFromInvalidMember(0, 0, null, null, null, null, null, null, 0, Instance of 'NoType', null, DeclarationKind.Class, C)
+ recoverFromInvalidMember(0, 0, null, null, null, null, null, null, null, 0, Instance of 'NoType', null, DeclarationKind.Class, C)
reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
listener: handleInvalidMember(;)
@@ -308,8 +306,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
@@ -385,8 +382,7 @@
parseMetadataStar(})
listener: beginMetadataStar(class)
listener: endMetadataStar(0)
- parseTopLevelKeywordDeclaration(}, class, null, null, Instance of 'DirectiveContext')
- parseClassDeclarationModifiers(}, class)
+ parseTopLevelKeywordDeclaration(}, class, null, Instance of 'DirectiveContext')
parseClassOrNamedMixinApplication(null, null, null, class)
listener: beginClassOrMixinOrNamedMixinApplicationPrelude(class)
ensureIdentifier(class, classOrMixinDeclaration)
diff --git a/pkg/front_end/test/macro_application/data/pkgs/macro/lib/macro.dart b/pkg/front_end/test/macro_application/data/pkgs/macro/lib/macro.dart
index ad78c6f..5a90a29 100644
--- a/pkg/front_end/test/macro_application/data/pkgs/macro/lib/macro.dart
+++ b/pkg/front_end/test/macro_application/data/pkgs/macro/lib/macro.dart
@@ -13,7 +13,7 @@
FutureOr<void> buildDefinitionForFunction(FunctionDeclaration function,
FunctionDefinitionBuilder builder) {
builder.augment(new FunctionBodyCode.fromString('''{
- return 42;
+ throw 42;
}'''));
}
}
@@ -34,6 +34,7 @@
builder.augment(new FunctionBodyCode.fromString('''{
print('isExactly=${await returnType.isExactly(parameterType)}');
print('isSubtype=${await returnType.isSubtypeOf(parameterType)}');
+ throw 42;
}'''));
}
}
diff --git a/pkg/front_end/test/macro_application/data/tests/declarations.dart b/pkg/front_end/test/macro_application/data/tests/declarations.dart
index 7a69a25..a225e74 100644
--- a/pkg/front_end/test/macro_application/data/tests/declarations.dart
+++ b/pkg/front_end/test/macro_application/data/tests/declarations.dart
@@ -2,11 +2,6 @@
// 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.
-/*library:
-
-
-*/
-
import 'package:macro/macro.dart';
/*member: topLevelFunction1:
diff --git a/pkg/front_end/test/macro_application/data/tests/declarations.dart.expect b/pkg/front_end/test/macro_application/data/tests/declarations.dart.expect
index dfe99d0..27bb5b1 100644
--- a/pkg/front_end/test/macro_application/data/tests/declarations.dart.expect
+++ b/pkg/front_end/test/macro_application/data/tests/declarations.dart.expect
@@ -19,9 +19,9 @@
constructor •() → self::Class1
: super core::Object::•()
;
- method /* from org-dartlang-augmentation:/a/b/c/main.dart-18 */ Class1_GeneratedMethod_() → void {}
- method /* from org-dartlang-augmentation:/a/b/c/main.dart-19 */ Class1_redirectGeneratedMethod_f() → void {}
- method /* from org-dartlang-augmentation:/a/b/c/main.dart-20 */ Class1_factGeneratedMethod_f() → void {}
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-17 */ Class1_GeneratedMethod_() → void {}
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-18 */ Class1_redirectGeneratedMethod_f() → void {}
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-19 */ Class1_factGeneratedMethod_f() → void {}
@#C5
static factory redirect() → self::Class1
return new self::Class1::•();
@@ -71,35 +71,35 @@
return null;
@#C8
static set topLevelSetter1(core::int? value) → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-1 */ topLevelFunction1GeneratedMethod_() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-2 */ topLevelFunction2GeneratedMethod_e() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-3 */ topLevelField1GeneratedMethod_() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-4 */ topLevelField2GeneratedMethod_e() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-5 */ topLevelField3GeneratedMethod_f() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-6 */ topLevelField4GeneratedMethod_l() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-7 */ topLevelGetter1GeneratedMethod_g() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-8 */ topLevelSetter1GeneratedMethod_s() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-9 */ Class1GeneratedMethod_() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-10 */ Class1Introspection() → void {
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction1GeneratedMethod_() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-1 */ topLevelFunction2GeneratedMethod_e() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-2 */ topLevelField1GeneratedMethod_() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-3 */ topLevelField2GeneratedMethod_e() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-4 */ topLevelField3GeneratedMethod_f() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-5 */ topLevelField4GeneratedMethod_l() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-6 */ topLevelGetter1GeneratedMethod_g() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-7 */ topLevelSetter1GeneratedMethod_s() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-8 */ Class1GeneratedMethod_() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-9 */ Class1Introspection() → void {
core::print("constructors=''");
core::print("fields='instanceField1','instanceField2','instanceField3'");
core::print("methods='instanceMethod1','instanceGetter1','[]','instanceSetter1'");
}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-11 */ Class1_instanceMethod1GeneratedMethod_() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-12 */ Class1_instanceGetter1GeneratedMethod_g() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-13 */ Class1_operatorGeneratedMethod_o() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-14 */ Class1_instanceField1GeneratedMethod_() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-15 */ Class1_instanceField2GeneratedMethod_f() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-16 */ Class1_instanceField3GeneratedMethod_fl() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-17 */ Class1_instanceSetter1GeneratedMethod_s() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-21 */ Class2GeneratedMethod_a() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-22 */ Class2Introspection() → void {
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-10 */ Class1_instanceMethod1GeneratedMethod_() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-11 */ Class1_instanceGetter1GeneratedMethod_g() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-12 */ Class1_operatorGeneratedMethod_o() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-13 */ Class1_instanceField1GeneratedMethod_() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-14 */ Class1_instanceField2GeneratedMethod_f() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-15 */ Class1_instanceField3GeneratedMethod_fl() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-16 */ Class1_instanceSetter1GeneratedMethod_s() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-20 */ Class2GeneratedMethod_a() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-21 */ Class2Introspection() → void {
core::print("constructors=");
core::print("fields='instanceField1'");
core::print("methods='instanceMethod1'");
}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-23 */ Class2_instanceMethod1GeneratedMethod_a() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-24 */ Class2_instanceField1GeneratedMethod_() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-22 */ Class2_instanceMethod1GeneratedMethod_a() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-23 */ Class2_instanceField1GeneratedMethod_() → void {}
constants {
#C1 = mac::ClassDeclarationsMacro1 {}
diff --git a/pkg/front_end/test/macro_application/data/tests/parameters.dart b/pkg/front_end/test/macro_application/data/tests/parameters.dart
index 89fa87e..c71841a 100644
--- a/pkg/front_end/test/macro_application/data/tests/parameters.dart
+++ b/pkg/front_end/test/macro_application/data/tests/parameters.dart
@@ -3,36 +3,50 @@
// BSD-style license that can be found in the LICENSE file.
/*library:
+Definitions:
+import 'dart:core' as i0;
+augment void topLevelFunction1(i0.int a, ) {
+ throw 42;
+}
+augment void topLevelFunction2(i0.int a, i0.int b, ) {
+ throw 42;
+}
+augment void topLevelFunction3(i0.int a, [i0.int? b, ]) {
+ throw 42;
+}
+augment void topLevelFunction4(i0.int a, {i0.int? b, i0.int? c, }) {
+ throw 42;
+}
*/
import 'package:macro/macro.dart';
/*member: topLevelFunction1:
augment void topLevelFunction1(int a, ) {
- return 42;
+ throw 42;
}*/
@FunctionDefinitionMacro1()
external void topLevelFunction1(int a);
/*member: topLevelFunction2:
augment void topLevelFunction2(int a, int b, ) {
- return 42;
+ throw 42;
}*/
@FunctionDefinitionMacro1()
external void topLevelFunction2(int a, int b);
/*member: topLevelFunction3:
augment void topLevelFunction3(int a, [int? b, ]) {
- return 42;
+ throw 42;
}*/
@FunctionDefinitionMacro1()
external void topLevelFunction3(int a, [int? b]);
/*member: topLevelFunction4:
augment void topLevelFunction4(int a, {int? b, int? c, }) {
- return 42;
+ throw 42;
}*/
@FunctionDefinitionMacro1()
external void topLevelFunction4(int a, {int? b, int? c});
diff --git a/pkg/front_end/test/macro_application/data/tests/parameters.dart.expect b/pkg/front_end/test/macro_application/data/tests/parameters.dart.expect
index 8f916e5..91ba10d 100644
--- a/pkg/front_end/test/macro_application/data/tests/parameters.dart.expect
+++ b/pkg/front_end/test/macro_application/data/tests/parameters.dart.expect
@@ -6,13 +6,21 @@
import "package:macro/macro.dart";
@#C1
-external static method topLevelFunction1(core::int a) → void;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction1(core::int a) → void {
+ throw 42;
+}
@#C1
-external static method topLevelFunction2(core::int a, core::int b) → void;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction2(core::int a, core::int b) → void {
+ throw 42;
+}
@#C1
-external static method topLevelFunction3(core::int a, [core::int? b = #C2]) → void;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction3(core::int a, [core::int? b = #C2]) → void {
+ throw 42;
+}
@#C1
-external static method topLevelFunction4(core::int a, {core::int? b = #C2, core::int? c = #C2}) → void;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction4(core::int a, {core::int? b = #C2, core::int? c = #C2}) → void {
+ throw 42;
+}
constants {
#C1 = mac::FunctionDefinitionMacro1 {}
diff --git a/pkg/front_end/test/macro_application/data/tests/sequence.dart b/pkg/front_end/test/macro_application/data/tests/sequence.dart
index 785b423..7d43bf3 100644
--- a/pkg/front_end/test/macro_application/data/tests/sequence.dart
+++ b/pkg/front_end/test/macro_application/data/tests/sequence.dart
@@ -2,11 +2,6 @@
// 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.
-/*library:
-
-
-*/
-
import 'package:macro/macro.dart';
@SequenceMacro()
diff --git a/pkg/front_end/test/macro_application/data/tests/sequence.dart.expect b/pkg/front_end/test/macro_application/data/tests/sequence.dart.expect
index 263cee0..273f4d9 100644
--- a/pkg/front_end/test/macro_application/data/tests/sequence.dart.expect
+++ b/pkg/front_end/test/macro_application/data/tests/sequence.dart.expect
@@ -10,7 +10,7 @@
synthetic constructor •() → self::Class1
: super core::Object::•()
;
- method /* from org-dartlang-augmentation:/a/b/c/main.dart-1 */ method() → dynamic {}
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ method() → dynamic {}
}
@#C1
@#C1
@@ -18,15 +18,15 @@
synthetic constructor •() → self::Class2
: super core::Object::•()
;
- method /* from org-dartlang-augmentation:/a/b/c/main.dart-2 */ method() → dynamic {}
- method /* from org-dartlang-augmentation:/a/b/c/main.dart-3 */ method1() → dynamic {}
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-1 */ method() → dynamic {}
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-2 */ method1() → dynamic {}
}
@#C1
class Class3 extends core::Object {
synthetic constructor •() → self::Class3
: super core::Object::•()
;
- method /* from org-dartlang-augmentation:/a/b/c/main.dart-4 */ method1() → dynamic {}
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-3 */ method1() → dynamic {}
method method() → dynamic {}
}
@#C1
@@ -36,9 +36,9 @@
synthetic constructor •() → self::Class4
: super core::Object::•()
;
- method /* from org-dartlang-augmentation:/a/b/c/main.dart-5 */ method1() → dynamic {}
- method /* from org-dartlang-augmentation:/a/b/c/main.dart-6 */ method3() → dynamic {}
- method /* from org-dartlang-augmentation:/a/b/c/main.dart-7 */ method4() → dynamic {}
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-4 */ method1() → dynamic {}
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-5 */ method3() → dynamic {}
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-6 */ method4() → dynamic {}
method method() → dynamic {}
method method2() → dynamic {}
}
diff --git a/pkg/front_end/test/macro_application/data/tests/subtypes.dart b/pkg/front_end/test/macro_application/data/tests/subtypes.dart
index ffdd9f7..b4028fd 100644
--- a/pkg/front_end/test/macro_application/data/tests/subtypes.dart
+++ b/pkg/front_end/test/macro_application/data/tests/subtypes.dart
@@ -3,8 +3,30 @@
// BSD-style license that can be found in the LICENSE file.
/*library:
+Definitions:
+import 'org-dartlang-test:///a/b/c/main.dart' as i0;
+augment i0.A topLevelFunction1(i0.A a, ) {
+ print('isExactly=true');
+ print('isSubtype=true');
+ throw 42;
+}
+augment i0.B2 topLevelFunction2(i0.B1 a, ) {
+ print('isExactly=false');
+ print('isSubtype=true');
+ throw 42;
+}
+augment i0.C2 topLevelFunction3(i0.C1 a, ) {
+ print('isExactly=false');
+ print('isSubtype=false');
+ throw 42;
+}
+augment i0.D2 topLevelFunction4(i0.D1 a, ) {
+ print('isExactly=false');
+ print('isSubtype=false');
+ throw 42;
+}
*/
import 'package:macro/macro.dart';
@@ -29,6 +51,7 @@
augment A topLevelFunction1(A a, ) {
print('isExactly=true');
print('isSubtype=true');
+ throw 42;
}*/
@FunctionDeclarationsMacro2()
@FunctionDefinitionMacro2()
@@ -40,6 +63,7 @@
augment B2 topLevelFunction2(B1 a, ) {
print('isExactly=false');
print('isSubtype=true');
+ throw 42;
}*/
@FunctionDeclarationsMacro2()
@FunctionDefinitionMacro2()
@@ -51,6 +75,7 @@
augment C2 topLevelFunction3(C1 a, ) {
print('isExactly=false');
print('isSubtype=false');
+ throw 42;
}*/
@FunctionDeclarationsMacro2()
@FunctionDefinitionMacro2()
@@ -62,6 +87,7 @@
augment D2 topLevelFunction4(D1 a, ) {
print('isExactly=false');
print('isSubtype=false');
+ throw 42;
}*/
@FunctionDeclarationsMacro2()
@FunctionDefinitionMacro2()
diff --git a/pkg/front_end/test/macro_application/data/tests/subtypes.dart.expect b/pkg/front_end/test/macro_application/data/tests/subtypes.dart.expect
index 07374b2..5488629 100644
--- a/pkg/front_end/test/macro_application/data/tests/subtypes.dart.expect
+++ b/pkg/front_end/test/macro_application/data/tests/subtypes.dart.expect
@@ -42,20 +42,36 @@
}
@#C1
@#C2
-external static method topLevelFunction1(self::A a) → self::A;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-4 */ topLevelFunction1(self::A a) → self::A {
+ core::print("isExactly=true");
+ core::print("isSubtype=true");
+ throw 42;
+}
@#C1
@#C2
-external static method topLevelFunction2(self::B1 a) → self::B2;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-4 */ topLevelFunction2(self::B1 a) → self::B2 {
+ core::print("isExactly=false");
+ core::print("isSubtype=true");
+ throw 42;
+}
@#C1
@#C2
-external static method topLevelFunction3(self::C1 a) → self::C2;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-4 */ topLevelFunction3(self::C1 a) → self::C2 {
+ core::print("isExactly=false");
+ core::print("isSubtype=false");
+ throw 42;
+}
@#C1
@#C2
-external static method topLevelFunction4(self::D1 a) → self::D2;
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-1 */ topLevelFunction1GeneratedMethod_es() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-2 */ topLevelFunction2GeneratedMethod_s() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-3 */ topLevelFunction3GeneratedMethod_() → void {}
-static method /* from org-dartlang-augmentation:/a/b/c/main.dart-4 */ topLevelFunction4GeneratedMethod_() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-4 */ topLevelFunction4(self::D1 a) → self::D2 {
+ core::print("isExactly=false");
+ core::print("isSubtype=false");
+ throw 42;
+}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction1GeneratedMethod_es() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-1 */ topLevelFunction2GeneratedMethod_s() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-2 */ topLevelFunction3GeneratedMethod_() → void {}
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-3 */ topLevelFunction4GeneratedMethod_() → void {}
constants {
#C1 = mac::FunctionDeclarationsMacro2 {}
diff --git a/pkg/front_end/test/macro_application/data/tests/supertypes.dart b/pkg/front_end/test/macro_application/data/tests/supertypes.dart
index 5690609..37c4038 100644
--- a/pkg/front_end/test/macro_application/data/tests/supertypes.dart
+++ b/pkg/front_end/test/macro_application/data/tests/supertypes.dart
@@ -3,8 +3,30 @@
// BSD-style license that can be found in the LICENSE file.
/*library:
+Definitions:
+import 'dart:core' as i0;
+augment class A {
+augment i0.String getSuperClass() {
+ return "Object";
+ }
+}
+augment class B {
+augment i0.String getSuperClass() {
+ return "A";
+ }
+}
+augment class M {
+augment i0.String getSuperClass() {
+ return "Object";
+ }
+}
+augment class C {
+augment i0.String getSuperClass() {
+ return "A";
+ }
+}
*/
import 'package:macro/macro.dart';
diff --git a/pkg/front_end/test/macro_application/data/tests/supertypes.dart.expect b/pkg/front_end/test/macro_application/data/tests/supertypes.dart.expect
index 3351c329..535be53b 100644
--- a/pkg/front_end/test/macro_application/data/tests/supertypes.dart.expect
+++ b/pkg/front_end/test/macro_application/data/tests/supertypes.dart.expect
@@ -10,18 +10,24 @@
synthetic constructor •() → self::A
: super core::Object::•()
;
- external method getSuperClass() → core::String;
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ getSuperClass() → core::String {
+ return "Object";
+ }
}
@#C1
class B extends self::A {
synthetic constructor •() → self::B
: super self::A::•()
;
- external method getSuperClass() → core::String;
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ getSuperClass() → core::String {
+ return "A";
+ }
}
@#C1
-abstract class M extends core::Object /*isMixinDeclaration*/ {
- external method getSuperClass() → core::String;
+class M extends core::Object /*isMixinDeclaration*/ {
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ getSuperClass() → core::String {
+ return "Object";
+ }
}
abstract class _C&A&M = self::A with self::M /*isAnonymousMixin*/ {
synthetic constructor •() → self::_C&A&M
@@ -35,7 +41,9 @@
synthetic constructor •() → self::C
: super self::_C&A&M::•()
;
- external method getSuperClass() → core::String;
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ getSuperClass() → core::String {
+ return "A";
+ }
}
constants {
diff --git a/pkg/front_end/test/macro_application/data/tests/to_string.dart b/pkg/front_end/test/macro_application/data/tests/to_string.dart
index b5327e5..7a0be62 100644
--- a/pkg/front_end/test/macro_application/data/tests/to_string.dart
+++ b/pkg/front_end/test/macro_application/data/tests/to_string.dart
@@ -2,11 +2,6 @@
// 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.
-/*library:
-
-
-*/
-
import 'package:macro/macro.dart';
@ToStringMacro()
diff --git a/pkg/front_end/test/macro_application/data/tests/to_string.dart.expect b/pkg/front_end/test/macro_application/data/tests/to_string.dart.expect
index 431c8a2..3a56029 100644
--- a/pkg/front_end/test/macro_application/data/tests/to_string.dart.expect
+++ b/pkg/front_end/test/macro_application/data/tests/to_string.dart.expect
@@ -12,7 +12,7 @@
synthetic constructor •() → self::A
: super core::Object::•()
;
- method /* from org-dartlang-augmentation:/a/b/c/main.dart-1 */ toString() → dynamic {
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ toString() → dynamic {
return "A(a=${this.{self::A::a}{dynamic}},b=${this.{self::A::b}{dynamic}})";
}
}
@@ -24,7 +24,7 @@
synthetic constructor •() → self::B
: super core::Object::•()
;
- method /* from org-dartlang-augmentation:/a/b/c/main.dart-2 */ toString() → dynamic {
+ method /* from org-dartlang-augmentation:/a/b/c/main.dart-1 */ toString() → dynamic {
return "B(c=${this.{self::B::c}{dynamic}},d=${this.{self::B::d}{dynamic}},e=${this.{self::B::e}{dynamic}})";
}
}
diff --git a/pkg/front_end/test/macro_application/data/tests/type_annotations.dart b/pkg/front_end/test/macro_application/data/tests/type_annotations.dart
index dfee364..f61a9a2 100644
--- a/pkg/front_end/test/macro_application/data/tests/type_annotations.dart
+++ b/pkg/front_end/test/macro_application/data/tests/type_annotations.dart
@@ -3,8 +3,35 @@
// BSD-style license that can be found in the LICENSE file.
/*library:
+Definitions:
+import 'dart:core' as i0;
+import 'dart:math' as i1;
+augment void topLevelFunction1() {
+ throw 42;
+}
+augment i0.dynamic topLevelFunction2() {
+ throw 42;
+}
+augment i0.int topLevelFunction3() {
+ throw 42;
+}
+augment i0.dynamic topLevelFunction4() {
+ throw 42;
+}
+augment i1.Random topLevelFunction5() {
+ throw 42;
+}
+augment i0.List<i0.int> topLevelFunction6() {
+ throw 42;
+}
+augment i0.Map<i1.Random, i0.List<i0.int>> topLevelFunction7() {
+ throw 42;
+}
+augment i0.Map<i0.int?, i0.String>? topLevelFunction8() {
+ throw 42;
+}
*/
import 'dart:math' as math;
@@ -13,56 +40,56 @@
/*member: topLevelFunction1:
augment void topLevelFunction1() {
- return 42;
+ throw 42;
}*/
@FunctionDefinitionMacro1()
external void topLevelFunction1();
/*member: topLevelFunction2:
augment dynamic topLevelFunction2() {
- return 42;
+ throw 42;
}*/
@FunctionDefinitionMacro1()
external dynamic topLevelFunction2();
/*member: topLevelFunction3:
augment int topLevelFunction3() {
- return 42;
+ throw 42;
}*/
@FunctionDefinitionMacro1()
external int topLevelFunction3();
/*member: topLevelFunction4:
augment dynamic topLevelFunction4() {
- return 42;
+ throw 42;
}*/
@FunctionDefinitionMacro1()
external topLevelFunction4();
/*member: topLevelFunction5:
-augment math.Random topLevelFunction5() {
- return 42;
+augment Random topLevelFunction5() {
+ throw 42;
}*/
@FunctionDefinitionMacro1()
external math.Random topLevelFunction5();
/*member: topLevelFunction6:
augment List<int> topLevelFunction6() {
- return 42;
+ throw 42;
}*/
@FunctionDefinitionMacro1()
external List<int> topLevelFunction6();
/*member: topLevelFunction7:
-augment Map<math.Random, List<int>> topLevelFunction7() {
- return 42;
+augment Map<Random, List<int>> topLevelFunction7() {
+ throw 42;
}*/
@FunctionDefinitionMacro1()
external Map<math.Random, List<int>> topLevelFunction7();
/*member: topLevelFunction8:
augment Map<int?, String>? topLevelFunction8() {
- return 42;
+ throw 42;
}*/
@FunctionDefinitionMacro1()
external Map<int?, String>? topLevelFunction8();
diff --git a/pkg/front_end/test/macro_application/data/tests/type_annotations.dart.expect b/pkg/front_end/test/macro_application/data/tests/type_annotations.dart.expect
index 219150c..ac3d6e3 100644
--- a/pkg/front_end/test/macro_application/data/tests/type_annotations.dart.expect
+++ b/pkg/front_end/test/macro_application/data/tests/type_annotations.dart.expect
@@ -8,21 +8,37 @@
import "package:macro/macro.dart";
@#C1
-external static method topLevelFunction1() → void;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction1() → void {
+ throw 42;
+}
@#C1
-external static method topLevelFunction2() → dynamic;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction2() → dynamic {
+ throw 42;
+}
@#C1
-external static method topLevelFunction3() → core::int;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction3() → core::int {
+ throw 42;
+}
@#C1
-external static method topLevelFunction4() → dynamic;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction4() → dynamic {
+ throw 42;
+}
@#C1
-external static method topLevelFunction5() → math::Random;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction5() → math::Random {
+ throw 42;
+}
@#C1
-external static method topLevelFunction6() → core::List<core::int>;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction6() → core::List<core::int> {
+ throw 42;
+}
@#C1
-external static method topLevelFunction7() → core::Map<math::Random, core::List<core::int>>;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction7() → core::Map<math::Random, core::List<core::int>> {
+ throw 42;
+}
@#C1
-external static method topLevelFunction8() → core::Map<core::int?, core::String>?;
+static method /* from org-dartlang-augmentation:/a/b/c/main.dart-0 */ topLevelFunction8() → core::Map<core::int?, core::String>? {
+ throw 42;
+}
constants {
#C1 = mac::FunctionDefinitionMacro1 {}
diff --git a/pkg/front_end/test/macro_application/data/tests/types.dart b/pkg/front_end/test/macro_application/data/tests/types.dart
index 883e037..5da560d 100644
--- a/pkg/front_end/test/macro_application/data/tests/types.dart
+++ b/pkg/front_end/test/macro_application/data/tests/types.dart
@@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
/*library:
+Types:
import 'dart:core' as i0;
import 'package:macro/macro.dart' as i1;
@@ -21,8 +22,7 @@
}
class topLevelFunction5GeneratedClass {
external i0.dynamic method();
-}
-*/
+}*/
import 'package:macro/macro.dart';
diff --git a/pkg/front_end/test/macro_application/macro_application_test.dart b/pkg/front_end/test/macro_application/macro_application_test.dart
index 647c544..c563333 100644
--- a/pkg/front_end/test/macro_application/macro_application_test.dart
+++ b/pkg/front_end/test/macro_application/macro_application_test.dart
@@ -23,6 +23,7 @@
import 'package:front_end/src/testing/compiler_common.dart';
import 'package:front_end/src/testing/id_extractor.dart';
import 'package:front_end/src/testing/id_testing_helper.dart';
+import 'package:front_end/src/testing/id_testing_utils.dart';
import 'package:kernel/ast.dart' hide Arguments;
import 'package:kernel/kernel.dart';
import 'package:kernel/target/targets.dart';
@@ -157,6 +158,16 @@
if (sourceLibraryBuilder.library == library) {
String source =
macroApplicationData.libraryTypesResult[sourceLibraryBuilder]!;
+ sb.write('\nTypes:');
+ sb.write('\n${source}');
+ }
+ }
+ for (SourceLibraryBuilder sourceLibraryBuilder
+ in macroApplicationData.libraryDefinitionResult.keys) {
+ if (sourceLibraryBuilder.library == library) {
+ String source =
+ macroApplicationData.libraryDefinitionResult[sourceLibraryBuilder]!;
+ sb.write('\nDefinitions:');
sb.write('\n${source}');
}
}
@@ -256,8 +267,10 @@
}
if (sb.isNotEmpty) {
Id id = computeMemberId(member);
- registry.registerValue(
- member.fileUri, member.fileOffset, id, sb.toString(), member);
+ MemberBuilder memberBuilder =
+ lookupMemberBuilder(testResultData.compilerResult, member)!;
+ registry.registerValue(memberBuilder.fileUri!, memberBuilder.charOffset,
+ id, sb.toString(), member);
}
}
}
diff --git a/tools/VERSION b/tools/VERSION
index 0910538..de4d810 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 17
PATCH 0
-PRERELEASE 143
+PRERELEASE 144
PRERELEASE_PATCH 0
\ No newline at end of file