[CFE] Increase test coverage 01
Increase test coverage --- body_builder.dart was the target.
Process: Replaced all `coverage-ignore-block(suite):` comments with
throws and ran `python3 tools/test.py -n cfe-strong-linux language/`,
copying (and modifying) representative tests from `langauge` that
covered new stuff (i.e. threw in the modified version). Then undid the
throw changes, and redid the coverage marking.
Change-Id: Ie08dc6fcd70cd3722b68c38bf2a152d03aae7885
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/378705
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
diff --git a/pkg/front_end/lib/src/kernel/body_builder.dart b/pkg/front_end/lib/src/kernel/body_builder.dart
index 45fa913..d28c80e 100644
--- a/pkg/front_end/lib/src/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/kernel/body_builder.dart
@@ -718,7 +718,6 @@
switchScope.unclaimedForwardDeclarations!
.forEach((String name, JumpTarget declaration) {
if (outerSwitchScope == null) {
- // Coverage-ignore-block(suite): Not run.
for (Statement statement in declaration.users) {
statement.parent!.replaceChild(
statement,
@@ -745,7 +744,6 @@
buildProblem(message, offset, name.length, context: context)
..parent = variable;
} else {
- // Coverage-ignore-block(suite): Not run.
variable.initializer = wrapInLocatedProblem(
variable.initializer!, message.withLocation(uri, offset, name.length),
context: context)
@@ -1043,7 +1041,6 @@
if (formal.isInitializingFormal) {
List<Initializer> initializers;
if (_context.isExternalConstructor) {
- // Coverage-ignore-block(suite): Not run.
initializers = <Initializer>[
buildInvalidInitializer(
buildProblem(
@@ -2180,7 +2177,6 @@
debugEvent("ParenthesizedExpression");
Expression value = popForValue();
if (value is ShadowLargeIntLiteral) {
- // Coverage-ignore-block(suite): Not run.
// We need to know that the expression was parenthesized because we will
// treat -n differently from -(n). If the expression occurs in a double
// context, -n is a double literal and -(n) is an application of unary- to
@@ -2676,7 +2672,6 @@
token.charOffset,
token.length));
} else {
- // Coverage-ignore-block(suite): Not run.
push(buildProblem(fasta.templateInvalidOperator.withArguments(token),
token.charOffset, token.length));
}
@@ -3630,7 +3625,6 @@
void pushNewLocalVariable(Expression? initializer, {Token? equalsToken}) {
Object? node = pop();
if (node is ParserRecovery) {
- // Coverage-ignore-block(suite): Not run.
push(node);
return;
}
@@ -3694,7 +3688,6 @@
debugEvent("NoFieldInitializer");
constantContext = _context.constantContext;
if (constantContext == ConstantContext.inferred) {
- // Coverage-ignore-block(suite): Not run.
// Creating a null value to prevent the Dart VM from crashing.
push(forest.createNullLiteral(offsetForToken(token)));
} else {
@@ -3709,7 +3702,6 @@
debugEvent("InitializedIdentifier");
Object? node = pop();
if (node is ParserRecovery) {
- // Coverage-ignore-block(suite): Not run.
push(node);
return;
}
@@ -3757,7 +3749,6 @@
currentLocalVariableModifiers = pop() as int;
List<Expression>? annotations = pop() as List<Expression>?;
if (node is ParserRecovery) {
- // Coverage-ignore-block(suite): Not run.
push(node);
return;
}
@@ -3791,7 +3782,6 @@
currentLocalVariableModifiers = pop() as int;
List<Expression>? annotations = pop() as List<Expression>?;
if (variables == null) {
- // Coverage-ignore-block(suite): Not run.
push(new ParserRecovery(offsetForToken(endToken)));
return;
}
@@ -3921,7 +3911,6 @@
void exitLoopOrSwitch(Statement statement) {
if (problemInLoopOrSwitch != null) {
- // Coverage-ignore-block(suite): Not run.
push(problemInLoopOrSwitch);
problemInLoopOrSwitch = null;
} else {
@@ -3964,7 +3953,6 @@
// Coverage-ignore-block(suite): Not run.
return <VariableDeclaration>[];
} else if (variableOrExpression is ParserRecovery) {
- // Coverage-ignore-block(suite): Not run.
return <VariableDeclaration>[];
} else if (variableOrExpression == null) {
return <VariableDeclaration>[];
@@ -4280,7 +4268,6 @@
<Statement>[variableOrExpression, ...intermediateVariables!, result]);
}
if (variableOrExpression is ParserRecovery) {
- // Coverage-ignore-block(suite): Not run.
problemInLoopOrSwitch ??= buildProblemStatement(
fasta.messageSyntheticToken, variableOrExpression.charOffset,
suppressMessage: true);
@@ -4350,7 +4337,6 @@
DartType typeArgument;
if (typeArguments != null) {
if (typeArguments.length > 1) {
- // Coverage-ignore-block(suite): Not run.
addProblem(
fasta.messageListLiteralTooManyTypeArguments,
offsetForToken(leftBracket),
@@ -4556,7 +4542,6 @@
if (setOrMapEntries != null) {
for (dynamic entry in setOrMapEntries) {
if (entry is MapLiteralEntry) {
- // Coverage-ignore-block(suite): Not run.
// TODO(danrubel): report the error on the colon
addProblem(fasta.templateExpectedButGot.withArguments(','),
entry.fileOffset, 1);
@@ -4849,7 +4834,6 @@
if (identifierCount == 1) {
Object? part = pop();
if (part is ParserRecovery) {
- // Coverage-ignore-block(suite): Not run.
push(new ParserErrorGenerator(
this, hashToken, fasta.messageSyntheticToken));
} else {
@@ -5255,7 +5239,6 @@
debugEvent("ThrowExpression");
Expression expression = popForValue();
if (constantContext != ConstantContext.none) {
- // Coverage-ignore-block(suite): Not run.
push(buildProblem(
fasta.templateNotConstantExpression.withArguments('Throw'),
throwToken.offset,
@@ -6222,7 +6205,6 @@
List<TypeBuilder>? typeArguments = pop() as List<TypeBuilder>?;
if (inMetadata && typeArguments != null) {
if (!libraryFeatures.genericMetadata.isEnabled) {
- // Coverage-ignore-block(suite): Not run.
handleRecoverableError(fasta.messageMetadataTypeArguments,
nameLastToken.next!, nameLastToken.next!);
}
@@ -6396,7 +6378,6 @@
target = null;
} else if (constructorBuilder.isConstructor) {
if (typeDeclarationBuilder.isAbstract) {
- // Coverage-ignore-block(suite): Not run.
return evaluateArgumentsBefore(
arguments,
buildAbstractClassInstantiationError(
@@ -7631,7 +7612,6 @@
JumpTarget breakTarget = exitBreakTarget()!;
List<BreakStatementImpl>? continueStatements;
if (continueTarget.hasUsers) {
- // Coverage-ignore-block(suite): Not run.
LabeledStatement labeledStatement = forest.createLabeledStatement(body);
continueStatements =
continueTarget.resolveContinues(forest, labeledStatement);
@@ -7662,7 +7642,6 @@
typeInferrer.assignedVariables
.storeInfo(forInStatement, assignedVariablesNodeInfo);
if (continueStatements != null) {
- // Coverage-ignore-block(suite): Not run.
for (BreakStatementImpl continueStatement in continueStatements) {
continueStatement.targetStatement = forInStatement;
}
@@ -7755,7 +7734,6 @@
push(forest.createRethrowStatement(
offsetForToken(rethrowToken), offsetForToken(endToken)));
} else {
- // Coverage-ignore-block(suite): Not run.
push(new ExpressionStatement(buildProblem(fasta.messageRethrowNotCatch,
offsetForToken(rethrowToken), lengthForToken(rethrowToken)))
..fileOffset = offsetForToken(rethrowToken));
@@ -8589,14 +8567,12 @@
push(problemInLoopOrSwitch = buildProblemStatement(
fasta.messageBreakOutsideOfLoop, breakKeyword.charOffset));
} else if (target == null || !target.isBreakTarget) {
- // Coverage-ignore-block(suite): Not run.
Token labelToken = breakKeyword.next!;
push(problemInLoopOrSwitch = buildProblemStatement(
fasta.templateInvalidBreakTarget.withArguments(name!),
labelToken.charOffset,
length: labelToken.length));
} else if (target.functionNestingLevel != functionNestingLevel) {
- // Coverage-ignore-block(suite): Not run.
push(buildProblemTargetOutsideLocalFunction(name, breakKeyword));
} else {
Statement statement =
@@ -8606,7 +8582,6 @@
}
}
- // Coverage-ignore(suite): Not run.
Statement buildProblemTargetOutsideLocalFunction(
String? name, Token keyword) {
Statement problem;
@@ -8619,6 +8594,7 @@
template.withArguments(name), offsetForToken(keyword),
length: lengthOfSpan(keyword, keyword.next));
} else {
+ // Coverage-ignore-block(suite): Not run.
Message message = isBreak
? fasta.messageAnonymousBreakTargetOutsideFunction
: fasta.messageAnonymousContinueTargetOutsideFunction;
@@ -8661,7 +8637,6 @@
}
}
if (target == null) {
- // Coverage-ignore-block(suite): Not run.
push(problemInLoopOrSwitch = buildProblemStatement(
fasta.messageContinueWithoutLabelInCase, continueKeyword.charOffset,
length: continueKeyword.length));
@@ -8895,7 +8870,6 @@
context: context, suppressMessage: suppressMessage));
}
- // Coverage-ignore(suite): Not run.
Statement wrapInProblemStatement(Statement statement, Message message) {
// TODO(askesc): Produce explicit error statement wrapping the original.
// See [issue 29717](https://github.com/dart-lang/sdk/issues/29717)
@@ -9020,7 +8994,6 @@
DartType fieldType = _context.substituteFieldType(builder.fieldType);
if (!typeEnvironment.isSubtypeOf(
formalType, fieldType, SubtypeCheckMode.withNullabilities)) {
- // Coverage-ignore-block(suite): Not run.
libraryBuilder.addProblem(
fasta.templateInitializingFormalTypeMismatch
.withArguments(name, formalType, builder.fieldType),
diff --git a/pkg/front_end/lib/src/source/source_field_builder.dart b/pkg/front_end/lib/src/source/source_field_builder.dart
index d60b640..8612580 100644
--- a/pkg/front_end/lib/src/source/source_field_builder.dart
+++ b/pkg/front_end/lib/src/source/source_field_builder.dart
@@ -355,7 +355,6 @@
hasBodyBeenBuilt = true;
if (!hasInitializer &&
initializer != null &&
- // Coverage-ignore(suite): Not run.
initializer is! NullLiteral &&
// Coverage-ignore(suite): Not run.
!isConst &&
diff --git a/pkg/front_end/lib/src/type_inference/inference_visitor.dart b/pkg/front_end/lib/src/type_inference/inference_visitor.dart
index 7fe8e3ea..f09b6fe 100644
--- a/pkg/front_end/lib/src/type_inference/inference_visitor.dart
+++ b/pkg/front_end/lib/src/type_inference/inference_visitor.dart
@@ -2224,7 +2224,6 @@
int? intValue = node.asInt64();
if (intValue == null) {
- // Coverage-ignore-block(suite): Not run.
Expression replacement = helper.buildProblem(
templateIntegerLiteralIsOutOfRange.withArguments(node.literal),
node.fileOffset,
@@ -2815,7 +2814,6 @@
inferredConditionTypes);
}
if (otherwise is ControlFlowElement) {
- // Coverage-ignore-block(suite): Not run.
checkElement(otherwise, item, typeArgument, inferredSpreadTypes,
inferredConditionTypes);
}
@@ -9841,7 +9839,6 @@
}
int? intValue = receiver.asInt64(negated: true);
if (intValue == null) {
- // Coverage-ignore-block(suite): Not run.
Expression error = helper.buildProblem(
templateIntegerLiteralIsOutOfRange
.withArguments(receiver.literal),
diff --git a/pkg/front_end/test/coverage_suite_expected.dart b/pkg/front_end/test/coverage_suite_expected.dart
index 05ec0cc..995d728 100644
--- a/pkg/front_end/test/coverage_suite_expected.dart
+++ b/pkg/front_end/test/coverage_suite_expected.dart
@@ -480,7 +480,7 @@
),
// 100.0%.
"package:front_end/src/kernel/body_builder.dart": (
- hitCount: 6831,
+ hitCount: 6954,
missCount: 0,
),
// 100.0%.
@@ -490,7 +490,7 @@
),
// 100.0%.
"package:front_end/src/kernel/collections.dart": (
- hitCount: 326,
+ hitCount: 329,
missCount: 0,
),
// 100.0%.
@@ -836,7 +836,7 @@
),
// 100.0%.
"package:front_end/src/source/source_field_builder.dart": (
- hitCount: 1180,
+ hitCount: 1181,
missCount: 0,
),
// 100.0%.
@@ -911,7 +911,7 @@
),
// 100.0%.
"package:front_end/src/type_inference/inference_visitor.dart": (
- hitCount: 8044,
+ hitCount: 8081,
missCount: 0,
),
// 100.0%.
diff --git a/pkg/front_end/testcases/coverage/bad_literal_symbol.dart b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart
new file mode 100644
index 0000000..7aa39f7
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart
@@ -0,0 +1,8 @@
+// Copyright (c) 2024, 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.
+
+void foo() {
+ print(#Bla); // OK
+ print(#!); // Error
+}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.strong.expect b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.strong.expect
new file mode 100644
index 0000000..2372b71
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.strong.expect
@@ -0,0 +1,22 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/bad_literal_symbol.dart:7:10: Error: Expected an identifier, but got '!'.
+// Try inserting an identifier before '!'.
+// print(#!); // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::print(#C1);
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/bad_literal_symbol.dart:7:9: Error: This couldn't be parsed.
+ print(#!); // Error
+ ^"!);
+}
+
+constants {
+ #C1 = #Bla
+}
diff --git a/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.strong.modular.expect
new file mode 100644
index 0000000..2372b71
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.strong.modular.expect
@@ -0,0 +1,22 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/bad_literal_symbol.dart:7:10: Error: Expected an identifier, but got '!'.
+// Try inserting an identifier before '!'.
+// print(#!); // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::print(#C1);
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/bad_literal_symbol.dart:7:9: Error: This couldn't be parsed.
+ print(#!); // Error
+ ^"!);
+}
+
+constants {
+ #C1 = #Bla
+}
diff --git a/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.strong.outline.expect
new file mode 100644
index 0000000..4a8528a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.strong.outline.expect
@@ -0,0 +1,5 @@
+library;
+import self as self;
+
+static method foo() → void
+ ;
diff --git a/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.strong.transformed.expect
new file mode 100644
index 0000000..2372b71
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.strong.transformed.expect
@@ -0,0 +1,22 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/bad_literal_symbol.dart:7:10: Error: Expected an identifier, but got '!'.
+// Try inserting an identifier before '!'.
+// print(#!); // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::print(#C1);
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/bad_literal_symbol.dart:7:9: Error: This couldn't be parsed.
+ print(#!); // Error
+ ^"!);
+}
+
+constants {
+ #C1 = #Bla
+}
diff --git a/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.textual_outline.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.textual_outline.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/bad_literal_symbol.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/const_equals_throw.dart b/pkg/front_end/testcases/coverage/const_equals_throw.dart
new file mode 100644
index 0000000..bf60f3e
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_equals_throw.dart
@@ -0,0 +1,7 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/compile_time_constant/r_test.dart
+
+const x = throw "x"; // Error
diff --git a/pkg/front_end/testcases/coverage/const_equals_throw.dart.strong.expect b/pkg/front_end/testcases/coverage/const_equals_throw.dart.strong.expect
new file mode 100644
index 0000000..014366d
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_equals_throw.dart.strong.expect
@@ -0,0 +1,13 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/const_equals_throw.dart:7:11: Error: Throw is not a constant expression.
+// const x = throw "x"; // Error
+// ^^^^^
+//
+import self as self;
+
+static const field invalid-type x = invalid-expression "pkg/front_end/testcases/coverage/const_equals_throw.dart:7:11: Error: Throw is not a constant expression.
+const x = throw \"x\"; // Error
+ ^^^^^";
diff --git a/pkg/front_end/testcases/coverage/const_equals_throw.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/const_equals_throw.dart.strong.modular.expect
new file mode 100644
index 0000000..014366d
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_equals_throw.dart.strong.modular.expect
@@ -0,0 +1,13 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/const_equals_throw.dart:7:11: Error: Throw is not a constant expression.
+// const x = throw "x"; // Error
+// ^^^^^
+//
+import self as self;
+
+static const field invalid-type x = invalid-expression "pkg/front_end/testcases/coverage/const_equals_throw.dart:7:11: Error: Throw is not a constant expression.
+const x = throw \"x\"; // Error
+ ^^^^^";
diff --git a/pkg/front_end/testcases/coverage/const_equals_throw.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/const_equals_throw.dart.strong.outline.expect
new file mode 100644
index 0000000..014366d
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_equals_throw.dart.strong.outline.expect
@@ -0,0 +1,13 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/const_equals_throw.dart:7:11: Error: Throw is not a constant expression.
+// const x = throw "x"; // Error
+// ^^^^^
+//
+import self as self;
+
+static const field invalid-type x = invalid-expression "pkg/front_end/testcases/coverage/const_equals_throw.dart:7:11: Error: Throw is not a constant expression.
+const x = throw \"x\"; // Error
+ ^^^^^";
diff --git a/pkg/front_end/testcases/coverage/const_equals_throw.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/const_equals_throw.dart.strong.transformed.expect
new file mode 100644
index 0000000..014366d
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_equals_throw.dart.strong.transformed.expect
@@ -0,0 +1,13 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/const_equals_throw.dart:7:11: Error: Throw is not a constant expression.
+// const x = throw "x"; // Error
+// ^^^^^
+//
+import self as self;
+
+static const field invalid-type x = invalid-expression "pkg/front_end/testcases/coverage/const_equals_throw.dart:7:11: Error: Throw is not a constant expression.
+const x = throw \"x\"; // Error
+ ^^^^^";
diff --git a/pkg/front_end/testcases/coverage/const_equals_throw.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/const_equals_throw.dart.textual_outline.expect
new file mode 100644
index 0000000..0d5a9d7
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_equals_throw.dart.textual_outline.expect
@@ -0,0 +1 @@
+const x = throw "x";
diff --git a/pkg/front_end/testcases/coverage/const_equals_throw.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/const_equals_throw.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..0d5a9d7
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_equals_throw.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+const x = throw "x";
diff --git a/pkg/front_end/testcases/coverage/const_field_without_initializer.dart b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart
new file mode 100644
index 0000000..f2002d7
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart
@@ -0,0 +1,8 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/const/syntax_test.dart
+
+const F0 = 42; // OK
+const F1; // Error
diff --git a/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.strong.expect b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.strong.expect
new file mode 100644
index 0000000..983ef19
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.strong.expect
@@ -0,0 +1,19 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/const_field_without_initializer.dart:8:7: Error: The const variable 'F1' must be initialized.
+// Try adding an initializer ('= expression') to the declaration.
+// const F1; // Error
+// ^^
+//
+import self as self;
+import "dart:core" as core;
+
+static const field core::int F0 = #C1;
+static const field dynamic F1 = #C2;
+
+constants {
+ #C1 = 42
+ #C2 = null
+}
diff --git a/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.strong.modular.expect
new file mode 100644
index 0000000..983ef19
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.strong.modular.expect
@@ -0,0 +1,19 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/const_field_without_initializer.dart:8:7: Error: The const variable 'F1' must be initialized.
+// Try adding an initializer ('= expression') to the declaration.
+// const F1; // Error
+// ^^
+//
+import self as self;
+import "dart:core" as core;
+
+static const field core::int F0 = #C1;
+static const field dynamic F1 = #C2;
+
+constants {
+ #C1 = 42
+ #C2 = null
+}
diff --git a/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.strong.outline.expect
new file mode 100644
index 0000000..742d467
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.strong.outline.expect
@@ -0,0 +1,14 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/const_field_without_initializer.dart:8:7: Error: The const variable 'F1' must be initialized.
+// Try adding an initializer ('= expression') to the declaration.
+// const F1; // Error
+// ^^
+//
+import self as self;
+import "dart:core" as core;
+
+static const field core::int F0 = 42;
+static const field dynamic F1;
diff --git a/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.strong.transformed.expect
new file mode 100644
index 0000000..983ef19
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.strong.transformed.expect
@@ -0,0 +1,19 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/const_field_without_initializer.dart:8:7: Error: The const variable 'F1' must be initialized.
+// Try adding an initializer ('= expression') to the declaration.
+// const F1; // Error
+// ^^
+//
+import self as self;
+import "dart:core" as core;
+
+static const field core::int F0 = #C1;
+static const field dynamic F1 = #C2;
+
+constants {
+ #C1 = 42
+ #C2 = null
+}
diff --git a/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.textual_outline.expect
new file mode 100644
index 0000000..72d2c43
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.textual_outline.expect
@@ -0,0 +1,3 @@
+const F0 = 42;
+
+const F1;
diff --git a/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..72d2c43
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/const_field_without_initializer.dart.textual_outline_modelled.expect
@@ -0,0 +1,3 @@
+const F0 = 42;
+
+const F1;
diff --git a/pkg/front_end/testcases/coverage/duplicate_local_const.dart b/pkg/front_end/testcases/coverage/duplicate_local_const.dart
new file mode 100644
index 0000000..349b7d8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/duplicate_local_const.dart
@@ -0,0 +1,8 @@
+// Copyright (c) 2024, 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.
+
+void test() {
+ const c07 = 1;
+ const c07 = 2;
+}
diff --git a/pkg/front_end/testcases/coverage/duplicate_local_const.dart.strong.expect b/pkg/front_end/testcases/coverage/duplicate_local_const.dart.strong.expect
new file mode 100644
index 0000000..6243099
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/duplicate_local_const.dart.strong.expect
@@ -0,0 +1,18 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/duplicate_local_const.dart:7:9: Error: 'c07' is already declared in this scope.
+// const c07 = 2;
+// ^^^
+// pkg/front_end/testcases/coverage/duplicate_local_const.dart:6:9: Context: Previous declaration of 'c07'.
+// const c07 = 1;
+// ^^^
+//
+import self as self;
+
+static method test() → void {
+ const invalid-type c07 = invalid-expression "pkg/front_end/testcases/coverage/duplicate_local_const.dart:7:9: Error: 'c07' is already declared in this scope.
+ const c07 = 2;
+ ^^^";
+}
diff --git a/pkg/front_end/testcases/coverage/duplicate_local_const.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/duplicate_local_const.dart.strong.modular.expect
new file mode 100644
index 0000000..6243099
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/duplicate_local_const.dart.strong.modular.expect
@@ -0,0 +1,18 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/duplicate_local_const.dart:7:9: Error: 'c07' is already declared in this scope.
+// const c07 = 2;
+// ^^^
+// pkg/front_end/testcases/coverage/duplicate_local_const.dart:6:9: Context: Previous declaration of 'c07'.
+// const c07 = 1;
+// ^^^
+//
+import self as self;
+
+static method test() → void {
+ const invalid-type c07 = invalid-expression "pkg/front_end/testcases/coverage/duplicate_local_const.dart:7:9: Error: 'c07' is already declared in this scope.
+ const c07 = 2;
+ ^^^";
+}
diff --git a/pkg/front_end/testcases/coverage/duplicate_local_const.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/duplicate_local_const.dart.strong.outline.expect
new file mode 100644
index 0000000..643a05a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/duplicate_local_const.dart.strong.outline.expect
@@ -0,0 +1,5 @@
+library;
+import self as self;
+
+static method test() → void
+ ;
diff --git a/pkg/front_end/testcases/coverage/duplicate_local_const.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/duplicate_local_const.dart.strong.transformed.expect
new file mode 100644
index 0000000..6243099
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/duplicate_local_const.dart.strong.transformed.expect
@@ -0,0 +1,18 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/duplicate_local_const.dart:7:9: Error: 'c07' is already declared in this scope.
+// const c07 = 2;
+// ^^^
+// pkg/front_end/testcases/coverage/duplicate_local_const.dart:6:9: Context: Previous declaration of 'c07'.
+// const c07 = 1;
+// ^^^
+//
+import self as self;
+
+static method test() → void {
+ const invalid-type c07 = invalid-expression "pkg/front_end/testcases/coverage/duplicate_local_const.dart:7:9: Error: 'c07' is already declared in this scope.
+ const c07 = 2;
+ ^^^";
+}
diff --git a/pkg/front_end/testcases/coverage/duplicate_local_const.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/duplicate_local_const.dart.textual_outline.expect
new file mode 100644
index 0000000..7da700f
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/duplicate_local_const.dart.textual_outline.expect
@@ -0,0 +1 @@
+void test() {}
diff --git a/pkg/front_end/testcases/coverage/duplicate_local_const.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/duplicate_local_const.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..7da700f
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/duplicate_local_const.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+void test() {}
diff --git a/pkg/front_end/testcases/coverage/external_test.dart b/pkg/front_end/testcases/coverage/external_test.dart
new file mode 100644
index 0000000..ff3c2ad
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/external_test.dart
@@ -0,0 +1,12 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/unsorted/external_test.dart
+
+class Foo {
+ var x = -1;
+ Foo() : x = 0; // OK
+ external Foo.n24(this.x); // Error
+}
+
diff --git a/pkg/front_end/testcases/coverage/external_test.dart.strong.expect b/pkg/front_end/testcases/coverage/external_test.dart.strong.expect
new file mode 100644
index 0000000..455f779
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/external_test.dart.strong.expect
@@ -0,0 +1,23 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/external_test.dart:10:25: Error: An external constructor can't initialize fields.
+// Try removing the field initializers, or removing the keyword 'external'.
+// external Foo.n24(this.x); // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class Foo extends core::Object {
+ field core::int x = 1.{core::int::unary-}(){() → core::int};
+ constructor •() → self::Foo
+ : self::Foo::x = 0, super core::Object::•()
+ ;
+ external constructor n24(core::int x) → self::Foo
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/coverage/external_test.dart:10:25: Error: An external constructor can't initialize fields.
+Try removing the field initializers, or removing the keyword 'external'.
+ external Foo.n24(this.x); // Error
+ ^";
+}
diff --git a/pkg/front_end/testcases/coverage/external_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/external_test.dart.strong.modular.expect
new file mode 100644
index 0000000..455f779
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/external_test.dart.strong.modular.expect
@@ -0,0 +1,23 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/external_test.dart:10:25: Error: An external constructor can't initialize fields.
+// Try removing the field initializers, or removing the keyword 'external'.
+// external Foo.n24(this.x); // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class Foo extends core::Object {
+ field core::int x = 1.{core::int::unary-}(){() → core::int};
+ constructor •() → self::Foo
+ : self::Foo::x = 0, super core::Object::•()
+ ;
+ external constructor n24(core::int x) → self::Foo
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/coverage/external_test.dart:10:25: Error: An external constructor can't initialize fields.
+Try removing the field initializers, or removing the keyword 'external'.
+ external Foo.n24(this.x); // Error
+ ^";
+}
diff --git a/pkg/front_end/testcases/coverage/external_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/external_test.dart.strong.outline.expect
new file mode 100644
index 0000000..bb73a5f
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/external_test.dart.strong.outline.expect
@@ -0,0 +1,10 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class Foo extends core::Object {
+ field core::int x;
+ constructor •() → self::Foo
+ ;
+ external constructor n24(core::int x) → self::Foo;
+}
diff --git a/pkg/front_end/testcases/coverage/external_test.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/external_test.dart.strong.transformed.expect
new file mode 100644
index 0000000..4796a15
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/external_test.dart.strong.transformed.expect
@@ -0,0 +1,28 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/external_test.dart:10:25: Error: An external constructor can't initialize fields.
+// Try removing the field initializers, or removing the keyword 'external'.
+// external Foo.n24(this.x); // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class Foo extends core::Object {
+ field core::int x = 1.{core::int::unary-}(){() → core::int};
+ constructor •() → self::Foo
+ : self::Foo::x = 0, super core::Object::•()
+ ;
+ external constructor n24(core::int x) → self::Foo
+ : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/coverage/external_test.dart:10:25: Error: An external constructor can't initialize fields.
+Try removing the field initializers, or removing the keyword 'external'.
+ external Foo.n24(this.x); // Error
+ ^";
+}
+
+
+Extra constant evaluation status:
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///external_test.dart:8:11 -> IntConstant(-1)
+Extra constant evaluation: evaluated: 1, effectively constant: 1
diff --git a/pkg/front_end/testcases/coverage/external_test.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/external_test.dart.textual_outline.expect
new file mode 100644
index 0000000..dee2a5a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/external_test.dart.textual_outline.expect
@@ -0,0 +1,5 @@
+class Foo {
+ var x = -1;
+ Foo() : x = 0;
+ external Foo.n24(this.x);
+}
diff --git a/pkg/front_end/testcases/coverage/for_in_label_test.dart b/pkg/front_end/testcases/coverage/for_in_label_test.dart
new file mode 100644
index 0000000..a580b4a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/for_in_label_test.dart
@@ -0,0 +1,13 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/library/env_test.dart
+
+void foo() {
+ for(int x in [1, 2, 3, 4]) {
+ if (x == 2) continue;
+ if (x == 3) break;
+ print("Hello $x");
+ }
+}
diff --git a/pkg/front_end/testcases/coverage/for_in_label_test.dart.strong.expect b/pkg/front_end/testcases/coverage/for_in_label_test.dart.strong.expect
new file mode 100644
index 0000000..e5064c3
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/for_in_label_test.dart.strong.expect
@@ -0,0 +1,16 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ #L1:
+ for (core::int x in <core::int>[1, 2, 3, 4])
+ #L2:
+ {
+ if(x =={core::num::==}{(core::Object) → core::bool} 2)
+ break #L2;
+ if(x =={core::num::==}{(core::Object) → core::bool} 3)
+ break #L1;
+ core::print("Hello ${x}");
+ }
+}
diff --git a/pkg/front_end/testcases/coverage/for_in_label_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/for_in_label_test.dart.strong.modular.expect
new file mode 100644
index 0000000..e5064c3
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/for_in_label_test.dart.strong.modular.expect
@@ -0,0 +1,16 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ #L1:
+ for (core::int x in <core::int>[1, 2, 3, 4])
+ #L2:
+ {
+ if(x =={core::num::==}{(core::Object) → core::bool} 2)
+ break #L2;
+ if(x =={core::num::==}{(core::Object) → core::bool} 3)
+ break #L1;
+ core::print("Hello ${x}");
+ }
+}
diff --git a/pkg/front_end/testcases/coverage/for_in_label_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/for_in_label_test.dart.strong.outline.expect
new file mode 100644
index 0000000..4a8528a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/for_in_label_test.dart.strong.outline.expect
@@ -0,0 +1,5 @@
+library;
+import self as self;
+
+static method foo() → void
+ ;
diff --git a/pkg/front_end/testcases/coverage/for_in_label_test.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/for_in_label_test.dart.strong.transformed.expect
new file mode 100644
index 0000000..3d7a626
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/for_in_label_test.dart.strong.transformed.expect
@@ -0,0 +1,21 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ #L1:
+ {
+ synthesized core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal4<core::int>(1, 2, 3, 4).{core::Iterable::iterator}{core::Iterator<core::int>};
+ for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+ core::int x = :sync-for-iterator.{core::Iterator::current}{core::int};
+ #L2:
+ {
+ if(x =={core::num::==}{(core::Object) → core::bool} 2)
+ break #L2;
+ if(x =={core::num::==}{(core::Object) → core::bool} 3)
+ break #L1;
+ core::print("Hello ${x}");
+ }
+ }
+ }
+}
diff --git a/pkg/front_end/testcases/coverage/for_in_label_test.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/for_in_label_test.dart.textual_outline.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/for_in_label_test.dart.textual_outline.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/for_in_label_test.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/for_in_label_test.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/for_in_label_test.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart
new file mode 100644
index 0000000..b0a3aec
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart
@@ -0,0 +1,13 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/nonfunction_type_aliases/generic_usage_function_error_test.dart
+
+typedef T<X> = Function;
+
+abstract class C {
+ final T<Null> v7;
+
+ C() : v7 = T(); // Error
+}
diff --git a/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.strong.expect b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.strong.expect
new file mode 100644
index 0000000..b39024c
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.strong.expect
@@ -0,0 +1,18 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart:12:14: Error: The class 'Function' is abstract and can't be instantiated.
+// C() : v7 = T(); // Error
+// ^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef T<unrelated X extends core::Object? = dynamic> = core::Function;
+abstract class C extends core::Object {
+ final field core::Function v7;
+ constructor •() → self::C
+ : self::C::v7 = invalid-expression "The class 'Function' is abstract and can't be instantiated.", super core::Object::•()
+ ;
+}
diff --git a/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.strong.modular.expect
new file mode 100644
index 0000000..b39024c
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.strong.modular.expect
@@ -0,0 +1,18 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart:12:14: Error: The class 'Function' is abstract and can't be instantiated.
+// C() : v7 = T(); // Error
+// ^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef T<unrelated X extends core::Object? = dynamic> = core::Function;
+abstract class C extends core::Object {
+ final field core::Function v7;
+ constructor •() → self::C
+ : self::C::v7 = invalid-expression "The class 'Function' is abstract and can't be instantiated.", super core::Object::•()
+ ;
+}
diff --git a/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.strong.outline.expect
new file mode 100644
index 0000000..612dd39
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.strong.outline.expect
@@ -0,0 +1,10 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+typedef T<unrelated X extends core::Object? = dynamic> = core::Function;
+abstract class C extends core::Object {
+ final field core::Function v7;
+ constructor •() → self::C
+ ;
+}
diff --git a/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.strong.transformed.expect
new file mode 100644
index 0000000..b39024c
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.strong.transformed.expect
@@ -0,0 +1,18 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart:12:14: Error: The class 'Function' is abstract and can't be instantiated.
+// C() : v7 = T(); // Error
+// ^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef T<unrelated X extends core::Object? = dynamic> = core::Function;
+abstract class C extends core::Object {
+ final field core::Function v7;
+ constructor •() → self::C
+ : self::C::v7 = invalid-expression "The class 'Function' is abstract and can't be instantiated.", super core::Object::•()
+ ;
+}
diff --git a/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.textual_outline.expect
new file mode 100644
index 0000000..59861f9c
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.textual_outline.expect
@@ -0,0 +1,6 @@
+typedef T<X> = Function;
+
+abstract class C {
+ final T<Null> v7;
+ C() : v7 = T();
+}
diff --git a/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..d775ca5
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/generic_usage_function_error_test.dart.textual_outline_modelled.expect
@@ -0,0 +1,6 @@
+abstract class C {
+ C() : v7 = T();
+ final T<Null> v7;
+}
+
+typedef T<X> = Function;
diff --git a/pkg/front_end/testcases/coverage/int64_literal_test.dart b/pkg/front_end/testcases/coverage/int64_literal_test.dart
new file mode 100644
index 0000000..be0b4a0
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/int64_literal_test.dart
@@ -0,0 +1,28 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/number/int64_literal_test.dart
+
+const int i21 = 2097152;
+
+void foo() {
+ int minInt64Value = -1 * i21 * i21 * i21; // OK
+ minInt64Value = -9223372036854775807 - 1; // OK
+ minInt64Value = -9223372036854775808; // OK
+ minInt64Value = -(9223372036854775808); // Error
+ minInt64Value = -(0x8000000000000000); // OK
+ minInt64Value = 0x8000000000000000; // OK
+ minInt64Value = -0x8000000000000000; // OK
+
+ int maxInt64Value = 1 * i21 * i21 * i21 - 1; // OK
+ maxInt64Value = 9223372036854775807; // OK
+ maxInt64Value = 9223372036854775807; // OK
+ maxInt64Value = 9223372036854775808 - 1; // Error
+ maxInt64Value = -9223372036854775808 - 1; // OK
+ maxInt64Value = -9223372036854775809; // Error
+ maxInt64Value = 0x8000000000000000 - 1; // OK
+ maxInt64Value = -0x8000000000000000 - 1; // OK
+ maxInt64Value = -0x8000000000000001; // Error
+ maxInt64Value = -(0x8000000000000001); // OK
+}
diff --git a/pkg/front_end/testcases/coverage/int64_literal_test.dart.strong.expect b/pkg/front_end/testcases/coverage/int64_literal_test.dart.strong.expect
new file mode 100644
index 0000000..e0a66fb
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/int64_literal_test.dart.strong.expect
@@ -0,0 +1,63 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/int64_literal_test.dart:13:21: Error: The integer literal 9223372036854775808 can't be represented in 64 bits.
+// Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+// minInt64Value = -(9223372036854775808); // Error
+// ^^^^^^^^^^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/int64_literal_test.dart:21:19: Error: The integer literal 9223372036854775808 can't be represented in 64 bits.
+// Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+// maxInt64Value = 9223372036854775808 - 1; // Error
+// ^^^^^^^^^^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/int64_literal_test.dart:23:20: Error: The integer literal 9223372036854775809 can't be represented in 64 bits.
+// Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+// maxInt64Value = -9223372036854775809; // Error
+// ^^^^^^^^^^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/int64_literal_test.dart:26:20: Error: The integer literal 0x8000000000000001 can't be represented in 64 bits.
+// Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+// maxInt64Value = -0x8000000000000001; // Error
+// ^^^^^^^^^^^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+static const field core::int i21 = #C1;
+static method foo() → void {
+ core::int minInt64Value = 1.{core::int::unary-}(){() → core::int}.{core::num::*}(#C1){(core::num) → core::int}.{core::num::*}(#C1){(core::num) → core::int}.{core::num::*}(#C1){(core::num) → core::int};
+ minInt64Value = 9223372036854775807.{core::int::unary-}(){() → core::int}.{core::num::-}(1){(core::num) → core::int};
+ minInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int};
+ minInt64Value = invalid-expression "pkg/front_end/testcases/coverage/int64_literal_test.dart:13:21: Error: The integer literal 9223372036854775808 can't be represented in 64 bits.
+Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+ minInt64Value = -(9223372036854775808); // Error
+ ^^^^^^^^^^^^^^^^^^^"{dynamic}.unary-() as{TypeError,ForDynamic} core::int;
+ minInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int};
+ minInt64Value = -9223372036854775808;
+ minInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int};
+ core::int maxInt64Value = 1.{core::num::*}(#C1){(core::num) → core::int}.{core::num::*}(#C1){(core::num) → core::int}.{core::num::*}(#C1){(core::num) → core::int}.{core::num::-}(1){(core::num) → core::int};
+ maxInt64Value = 9223372036854775807;
+ maxInt64Value = 9223372036854775807;
+ maxInt64Value = invalid-expression "pkg/front_end/testcases/coverage/int64_literal_test.dart:21:19: Error: The integer literal 9223372036854775808 can't be represented in 64 bits.
+Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+ maxInt64Value = 9223372036854775808 - 1; // Error
+ ^^^^^^^^^^^^^^^^^^^"{dynamic}.-(1) as{TypeError,ForDynamic} core::int;
+ maxInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int}.{core::num::-}(1){(core::num) → core::int};
+ maxInt64Value = invalid-expression "pkg/front_end/testcases/coverage/int64_literal_test.dart:23:20: Error: The integer literal 9223372036854775809 can't be represented in 64 bits.
+Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+ maxInt64Value = -9223372036854775809; // Error
+ ^^^^^^^^^^^^^^^^^^^" as{TypeError,ForDynamic} core::int;
+ maxInt64Value = -9223372036854775808.{core::num::-}(1){(core::num) → core::int};
+ maxInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int}.{core::num::-}(1){(core::num) → core::int};
+ maxInt64Value = invalid-expression "pkg/front_end/testcases/coverage/int64_literal_test.dart:26:20: Error: The integer literal 0x8000000000000001 can't be represented in 64 bits.
+Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+ maxInt64Value = -0x8000000000000001; // Error
+ ^^^^^^^^^^^^^^^^^^" as{TypeError,ForDynamic} core::int;
+ maxInt64Value = -9223372036854775807.{core::int::unary-}(){() → core::int};
+}
+
+constants {
+ #C1 = 2097152
+}
diff --git a/pkg/front_end/testcases/coverage/int64_literal_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/int64_literal_test.dart.strong.modular.expect
new file mode 100644
index 0000000..e0a66fb
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/int64_literal_test.dart.strong.modular.expect
@@ -0,0 +1,63 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/int64_literal_test.dart:13:21: Error: The integer literal 9223372036854775808 can't be represented in 64 bits.
+// Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+// minInt64Value = -(9223372036854775808); // Error
+// ^^^^^^^^^^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/int64_literal_test.dart:21:19: Error: The integer literal 9223372036854775808 can't be represented in 64 bits.
+// Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+// maxInt64Value = 9223372036854775808 - 1; // Error
+// ^^^^^^^^^^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/int64_literal_test.dart:23:20: Error: The integer literal 9223372036854775809 can't be represented in 64 bits.
+// Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+// maxInt64Value = -9223372036854775809; // Error
+// ^^^^^^^^^^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/int64_literal_test.dart:26:20: Error: The integer literal 0x8000000000000001 can't be represented in 64 bits.
+// Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+// maxInt64Value = -0x8000000000000001; // Error
+// ^^^^^^^^^^^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+static const field core::int i21 = #C1;
+static method foo() → void {
+ core::int minInt64Value = 1.{core::int::unary-}(){() → core::int}.{core::num::*}(#C1){(core::num) → core::int}.{core::num::*}(#C1){(core::num) → core::int}.{core::num::*}(#C1){(core::num) → core::int};
+ minInt64Value = 9223372036854775807.{core::int::unary-}(){() → core::int}.{core::num::-}(1){(core::num) → core::int};
+ minInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int};
+ minInt64Value = invalid-expression "pkg/front_end/testcases/coverage/int64_literal_test.dart:13:21: Error: The integer literal 9223372036854775808 can't be represented in 64 bits.
+Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+ minInt64Value = -(9223372036854775808); // Error
+ ^^^^^^^^^^^^^^^^^^^"{dynamic}.unary-() as{TypeError,ForDynamic} core::int;
+ minInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int};
+ minInt64Value = -9223372036854775808;
+ minInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int};
+ core::int maxInt64Value = 1.{core::num::*}(#C1){(core::num) → core::int}.{core::num::*}(#C1){(core::num) → core::int}.{core::num::*}(#C1){(core::num) → core::int}.{core::num::-}(1){(core::num) → core::int};
+ maxInt64Value = 9223372036854775807;
+ maxInt64Value = 9223372036854775807;
+ maxInt64Value = invalid-expression "pkg/front_end/testcases/coverage/int64_literal_test.dart:21:19: Error: The integer literal 9223372036854775808 can't be represented in 64 bits.
+Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+ maxInt64Value = 9223372036854775808 - 1; // Error
+ ^^^^^^^^^^^^^^^^^^^"{dynamic}.-(1) as{TypeError,ForDynamic} core::int;
+ maxInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int}.{core::num::-}(1){(core::num) → core::int};
+ maxInt64Value = invalid-expression "pkg/front_end/testcases/coverage/int64_literal_test.dart:23:20: Error: The integer literal 9223372036854775809 can't be represented in 64 bits.
+Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+ maxInt64Value = -9223372036854775809; // Error
+ ^^^^^^^^^^^^^^^^^^^" as{TypeError,ForDynamic} core::int;
+ maxInt64Value = -9223372036854775808.{core::num::-}(1){(core::num) → core::int};
+ maxInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int}.{core::num::-}(1){(core::num) → core::int};
+ maxInt64Value = invalid-expression "pkg/front_end/testcases/coverage/int64_literal_test.dart:26:20: Error: The integer literal 0x8000000000000001 can't be represented in 64 bits.
+Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+ maxInt64Value = -0x8000000000000001; // Error
+ ^^^^^^^^^^^^^^^^^^" as{TypeError,ForDynamic} core::int;
+ maxInt64Value = -9223372036854775807.{core::int::unary-}(){() → core::int};
+}
+
+constants {
+ #C1 = 2097152
+}
diff --git a/pkg/front_end/testcases/coverage/int64_literal_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/int64_literal_test.dart.strong.outline.expect
new file mode 100644
index 0000000..e259bb4
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/int64_literal_test.dart.strong.outline.expect
@@ -0,0 +1,7 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+static const field core::int i21 = 2097152;
+static method foo() → void
+ ;
diff --git a/pkg/front_end/testcases/coverage/int64_literal_test.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/int64_literal_test.dart.strong.transformed.expect
new file mode 100644
index 0000000..f8aa259
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/int64_literal_test.dart.strong.transformed.expect
@@ -0,0 +1,76 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/int64_literal_test.dart:13:21: Error: The integer literal 9223372036854775808 can't be represented in 64 bits.
+// Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+// minInt64Value = -(9223372036854775808); // Error
+// ^^^^^^^^^^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/int64_literal_test.dart:21:19: Error: The integer literal 9223372036854775808 can't be represented in 64 bits.
+// Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+// maxInt64Value = 9223372036854775808 - 1; // Error
+// ^^^^^^^^^^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/int64_literal_test.dart:23:20: Error: The integer literal 9223372036854775809 can't be represented in 64 bits.
+// Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+// maxInt64Value = -9223372036854775809; // Error
+// ^^^^^^^^^^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/int64_literal_test.dart:26:20: Error: The integer literal 0x8000000000000001 can't be represented in 64 bits.
+// Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+// maxInt64Value = -0x8000000000000001; // Error
+// ^^^^^^^^^^^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+static const field core::int i21 = #C1;
+static method foo() → void {
+ core::int minInt64Value = 1.{core::int::unary-}(){() → core::int}.{core::num::*}(#C1){(core::num) → core::int}.{core::num::*}(#C1){(core::num) → core::int}.{core::num::*}(#C1){(core::num) → core::int};
+ minInt64Value = 9223372036854775807.{core::int::unary-}(){() → core::int}.{core::num::-}(1){(core::num) → core::int};
+ minInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int};
+ minInt64Value = invalid-expression "pkg/front_end/testcases/coverage/int64_literal_test.dart:13:21: Error: The integer literal 9223372036854775808 can't be represented in 64 bits.
+Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+ minInt64Value = -(9223372036854775808); // Error
+ ^^^^^^^^^^^^^^^^^^^"{dynamic}.unary-() as{TypeError,ForDynamic} core::int;
+ minInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int};
+ minInt64Value = -9223372036854775808;
+ minInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int};
+ core::int maxInt64Value = 1.{core::num::*}(#C1){(core::num) → core::int}.{core::num::*}(#C1){(core::num) → core::int}.{core::num::*}(#C1){(core::num) → core::int}.{core::num::-}(1){(core::num) → core::int};
+ maxInt64Value = 9223372036854775807;
+ maxInt64Value = 9223372036854775807;
+ maxInt64Value = invalid-expression "pkg/front_end/testcases/coverage/int64_literal_test.dart:21:19: Error: The integer literal 9223372036854775808 can't be represented in 64 bits.
+Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+ maxInt64Value = 9223372036854775808 - 1; // Error
+ ^^^^^^^^^^^^^^^^^^^"{dynamic}.-(1) as{TypeError,ForDynamic} core::int;
+ maxInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int}.{core::num::-}(1){(core::num) → core::int};
+ maxInt64Value = invalid-expression "pkg/front_end/testcases/coverage/int64_literal_test.dart:23:20: Error: The integer literal 9223372036854775809 can't be represented in 64 bits.
+Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+ maxInt64Value = -9223372036854775809; // Error
+ ^^^^^^^^^^^^^^^^^^^" as{TypeError,ForDynamic,Unchecked} core::int;
+ maxInt64Value = -9223372036854775808.{core::num::-}(1){(core::num) → core::int};
+ maxInt64Value = -9223372036854775808.{core::int::unary-}(){() → core::int}.{core::num::-}(1){(core::num) → core::int};
+ maxInt64Value = invalid-expression "pkg/front_end/testcases/coverage/int64_literal_test.dart:26:20: Error: The integer literal 0x8000000000000001 can't be represented in 64 bits.
+Try using the BigInt class if you need an integer larger than 9,223,372,036,854,775,807 or less than -9,223,372,036,854,775,808.
+ maxInt64Value = -0x8000000000000001; // Error
+ ^^^^^^^^^^^^^^^^^^" as{TypeError,ForDynamic,Unchecked} core::int;
+ maxInt64Value = -9223372036854775807.{core::int::unary-}(){() → core::int};
+}
+
+constants {
+ #C1 = 2097152
+}
+
+Extra constant evaluation status:
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///int64_literal_test.dart:10:38 -> IntConstant(-9223372036854775808)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///int64_literal_test.dart:11:40 -> IntConstant(-9223372036854775808)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///int64_literal_test.dart:12:19 -> IntConstant(-9223372036854775808)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///int64_literal_test.dart:14:19 -> IntConstant(-9223372036854775808)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///int64_literal_test.dart:16:19 -> IntConstant(-9223372036854775808)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///int64_literal_test.dart:18:43 -> IntConstant(9223372036854775807)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///int64_literal_test.dart:22:40 -> IntConstant(9223372036854775807)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///int64_literal_test.dart:24:38 -> IntConstant(9223372036854775807)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///int64_literal_test.dart:25:39 -> IntConstant(9223372036854775807)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///int64_literal_test.dart:27:19 -> IntConstant(9223372036854775807)
+Extra constant evaluation: evaluated: 31, effectively constant: 10
diff --git a/pkg/front_end/testcases/coverage/int64_literal_test.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/int64_literal_test.dart.textual_outline.expect
new file mode 100644
index 0000000..720b84c
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/int64_literal_test.dart.textual_outline.expect
@@ -0,0 +1,3 @@
+const int i21 = 2097152;
+
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/int64_literal_test.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/int64_literal_test.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..720b84c
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/int64_literal_test.dart.textual_outline_modelled.expect
@@ -0,0 +1,3 @@
+const int i21 = 2097152;
+
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/label5_test.dart b/pkg/front_end/testcases/coverage/label5_test.dart
new file mode 100644
index 0000000..04c0219
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label5_test.dart
@@ -0,0 +1,12 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/label/label5_test.dart
+
+void foo() {
+ var L = 33;
+ while (false) {
+ if (true) break L; // Error
+ }
+}
diff --git a/pkg/front_end/testcases/coverage/label5_test.dart.strong.expect b/pkg/front_end/testcases/coverage/label5_test.dart.strong.expect
new file mode 100644
index 0000000..033dd7d
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label5_test.dart.strong.expect
@@ -0,0 +1,17 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/label5_test.dart:10:21: Error: Can't break to 'L'.
+// if (true) break L; // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::int L = 33;
+ invalid-expression "pkg/front_end/testcases/coverage/label5_test.dart:10:21: Error: Can't break to 'L'.
+ if (true) break L; // Error
+ ^";
+}
diff --git a/pkg/front_end/testcases/coverage/label5_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/label5_test.dart.strong.modular.expect
new file mode 100644
index 0000000..033dd7d
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label5_test.dart.strong.modular.expect
@@ -0,0 +1,17 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/label5_test.dart:10:21: Error: Can't break to 'L'.
+// if (true) break L; // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::int L = 33;
+ invalid-expression "pkg/front_end/testcases/coverage/label5_test.dart:10:21: Error: Can't break to 'L'.
+ if (true) break L; // Error
+ ^";
+}
diff --git a/pkg/front_end/testcases/coverage/label5_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/label5_test.dart.strong.outline.expect
new file mode 100644
index 0000000..4a8528a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label5_test.dart.strong.outline.expect
@@ -0,0 +1,5 @@
+library;
+import self as self;
+
+static method foo() → void
+ ;
diff --git a/pkg/front_end/testcases/coverage/label5_test.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/label5_test.dart.strong.transformed.expect
new file mode 100644
index 0000000..033dd7d
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label5_test.dart.strong.transformed.expect
@@ -0,0 +1,17 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/label5_test.dart:10:21: Error: Can't break to 'L'.
+// if (true) break L; // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::int L = 33;
+ invalid-expression "pkg/front_end/testcases/coverage/label5_test.dart:10:21: Error: Can't break to 'L'.
+ if (true) break L; // Error
+ ^";
+}
diff --git a/pkg/front_end/testcases/coverage/label5_test.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/label5_test.dart.textual_outline.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label5_test.dart.textual_outline.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/label5_test.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/label5_test.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label5_test.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/label6_test.dart b/pkg/front_end/testcases/coverage/label6_test.dart
new file mode 100644
index 0000000..145a40e
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label6_test.dart
@@ -0,0 +1,18 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/label/label6_test.dart
+
+void foo() {
+ L:
+ while (false) {
+ break;
+ break L;
+ void innerFunc() {
+ if (true) break L; // Error
+ }
+
+ innerFunc();
+ }
+}
diff --git a/pkg/front_end/testcases/coverage/label6_test.dart.strong.expect b/pkg/front_end/testcases/coverage/label6_test.dart.strong.expect
new file mode 100644
index 0000000..2d51e57
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label6_test.dart.strong.expect
@@ -0,0 +1,16 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/label6_test.dart:13:17: Error: Can't break to 'L' in a different function.
+// if (true) break L; // Error
+// ^^^^^^^
+//
+import self as self;
+
+static method foo() → void {
+ #L1:
+ invalid-expression "pkg/front_end/testcases/coverage/label6_test.dart:13:17: Error: Can't break to 'L' in a different function.
+ if (true) break L; // Error
+ ^^^^^^^";
+}
diff --git a/pkg/front_end/testcases/coverage/label6_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/label6_test.dart.strong.modular.expect
new file mode 100644
index 0000000..2d51e57
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label6_test.dart.strong.modular.expect
@@ -0,0 +1,16 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/label6_test.dart:13:17: Error: Can't break to 'L' in a different function.
+// if (true) break L; // Error
+// ^^^^^^^
+//
+import self as self;
+
+static method foo() → void {
+ #L1:
+ invalid-expression "pkg/front_end/testcases/coverage/label6_test.dart:13:17: Error: Can't break to 'L' in a different function.
+ if (true) break L; // Error
+ ^^^^^^^";
+}
diff --git a/pkg/front_end/testcases/coverage/label6_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/label6_test.dart.strong.outline.expect
new file mode 100644
index 0000000..4a8528a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label6_test.dart.strong.outline.expect
@@ -0,0 +1,5 @@
+library;
+import self as self;
+
+static method foo() → void
+ ;
diff --git a/pkg/front_end/testcases/coverage/label6_test.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/label6_test.dart.strong.transformed.expect
new file mode 100644
index 0000000..2d51e57
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label6_test.dart.strong.transformed.expect
@@ -0,0 +1,16 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/label6_test.dart:13:17: Error: Can't break to 'L' in a different function.
+// if (true) break L; // Error
+// ^^^^^^^
+//
+import self as self;
+
+static method foo() → void {
+ #L1:
+ invalid-expression "pkg/front_end/testcases/coverage/label6_test.dart:13:17: Error: Can't break to 'L' in a different function.
+ if (true) break L; // Error
+ ^^^^^^^";
+}
diff --git a/pkg/front_end/testcases/coverage/label6_test.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/label6_test.dart.textual_outline.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label6_test.dart.textual_outline.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/label6_test.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/label6_test.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/label6_test.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart
new file mode 100644
index 0000000..3836b1b
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart
@@ -0,0 +1,8 @@
+// Copyright (c) 2024, 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.
+
+void foo() {
+ var x = <int>[1, 2, 3]; // OK
+ var y = <int, int>[1, 2, 3]; // Error
+}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.strong.expect b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.strong.expect
new file mode 100644
index 0000000..65433fd
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.strong.expect
@@ -0,0 +1,15 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart:7:21: Error: List literal requires exactly one type argument.
+// var y = <int, int>[1, 2, 3]; // Error
+// ^^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::List<core::int> x = <core::int>[1, 2, 3];
+ core::List<invalid-type> y = <invalid-type>[1, 2, 3];
+}
diff --git a/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.strong.modular.expect
new file mode 100644
index 0000000..65433fd
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.strong.modular.expect
@@ -0,0 +1,15 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart:7:21: Error: List literal requires exactly one type argument.
+// var y = <int, int>[1, 2, 3]; // Error
+// ^^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::List<core::int> x = <core::int>[1, 2, 3];
+ core::List<invalid-type> y = <invalid-type>[1, 2, 3];
+}
diff --git a/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.strong.outline.expect
new file mode 100644
index 0000000..4a8528a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.strong.outline.expect
@@ -0,0 +1,5 @@
+library;
+import self as self;
+
+static method foo() → void
+ ;
diff --git a/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.strong.transformed.expect
new file mode 100644
index 0000000..31ba187
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.strong.transformed.expect
@@ -0,0 +1,15 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart:7:21: Error: List literal requires exactly one type argument.
+// var y = <int, int>[1, 2, 3]; // Error
+// ^^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::List<core::int> x = core::_GrowableList::_literal3<core::int>(1, 2, 3);
+ core::List<invalid-type> y = core::_GrowableList::_literal3<invalid-type>(1, 2, 3);
+}
diff --git a/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.textual_outline.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.textual_outline.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/literal_list_two_type_arguments.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/metadata_test.dart b/pkg/front_end/testcases/coverage/metadata_test.dart
new file mode 100644
index 0000000..702770d
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_test.dart
@@ -0,0 +1,18 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/generic/metadata_test.dart
+
+// @dart=2.12
+
+// Check that annotations cannot use type arguments, but can be raw.
+
+class C<T> {
+ const C();
+}
+
+@C() // OK
+@C<dynamic>() // Error
+@C<int>() // Error
+void foo() {}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/coverage/metadata_test.dart.strong.expect b/pkg/front_end/testcases/coverage/metadata_test.dart.strong.expect
new file mode 100644
index 0000000..fbd63ab
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_test.dart.strong.expect
@@ -0,0 +1,35 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/metadata_test.dart:16:3: Error: An annotation can't use type arguments.
+// @C<dynamic>() // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_test.dart:17:3: Error: An annotation can't use type arguments.
+// @C<int>() // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::C<self::C::T%>
+ : super core::Object::•()
+ ;
+}
+@#C1
+@#C1
+@#C2
+static method foo() → void {}
+
+constants {
+ #C1 = self::C<dynamic> {}
+ #C2 = self::C<core::int> {}
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///metadata_test.dart:
+- C. (from org-dartlang-testcase:///metadata_test.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/coverage/metadata_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/metadata_test.dart.strong.modular.expect
new file mode 100644
index 0000000..fbd63ab
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_test.dart.strong.modular.expect
@@ -0,0 +1,35 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/metadata_test.dart:16:3: Error: An annotation can't use type arguments.
+// @C<dynamic>() // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_test.dart:17:3: Error: An annotation can't use type arguments.
+// @C<int>() // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::C<self::C::T%>
+ : super core::Object::•()
+ ;
+}
+@#C1
+@#C1
+@#C2
+static method foo() → void {}
+
+constants {
+ #C1 = self::C<dynamic> {}
+ #C2 = self::C<core::int> {}
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///metadata_test.dart:
+- C. (from org-dartlang-testcase:///metadata_test.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/coverage/metadata_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/metadata_test.dart.strong.outline.expect
new file mode 100644
index 0000000..e166136
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_test.dart.strong.outline.expect
@@ -0,0 +1,32 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/metadata_test.dart:16:3: Error: An annotation can't use type arguments.
+// @C<dynamic>() // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_test.dart:17:3: Error: An annotation can't use type arguments.
+// @C<int>() // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::C<self::C::T%>
+ : super core::Object::•()
+ ;
+}
+@self::C::•<dynamic>()
+@self::C::•<dynamic>()
+@self::C::•<core::int>()
+static method foo() → void
+ ;
+
+
+Extra constant evaluation status:
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///metadata_test.dart:15:2 -> InstanceConstant(const C<dynamic>{})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///metadata_test.dart:16:2 -> InstanceConstant(const C<dynamic>{})
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///metadata_test.dart:17:2 -> InstanceConstant(const C<int>{})
+Extra constant evaluation: evaluated: 3, effectively constant: 3
diff --git a/pkg/front_end/testcases/coverage/metadata_test.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/metadata_test.dart.strong.transformed.expect
new file mode 100644
index 0000000..fbd63ab
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_test.dart.strong.transformed.expect
@@ -0,0 +1,35 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/metadata_test.dart:16:3: Error: An annotation can't use type arguments.
+// @C<dynamic>() // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_test.dart:17:3: Error: An annotation can't use type arguments.
+// @C<int>() // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::C<self::C::T%>
+ : super core::Object::•()
+ ;
+}
+@#C1
+@#C1
+@#C2
+static method foo() → void {}
+
+constants {
+ #C1 = self::C<dynamic> {}
+ #C2 = self::C<core::int> {}
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///metadata_test.dart:
+- C. (from org-dartlang-testcase:///metadata_test.dart:12:9)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/coverage/metadata_test.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/metadata_test.dart.textual_outline.expect
new file mode 100644
index 0000000..8abac40
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_test.dart.textual_outline.expect
@@ -0,0 +1,13 @@
+// @dart = 2.12
+
+class C<T> {
+ const C();
+}
+
+@C()
+
+@C<dynamic>()
+
+@C<int>()
+
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart
new file mode 100644
index 0000000..c5bfd87
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart
@@ -0,0 +1,44 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/variable/variable_declaration_metadata_test.dart
+
+// Verify that the individual variable declarations inside a variable
+// declaration list are not allowed to be annotated with metadata.
+
+const annotation = null;
+
+var v0; // OK
+var @annotation v1; // Error
+var v2, @annotation v3; // Error
+
+int v4 = -1; // This should by itself be fine, but recovery is bad.
+int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+int v6 = -1, @annotation v7 = -1; // Error
+
+class C {
+ var f0; // OK
+ var @annotation f1; // Error
+ var f2, @annotation f3; // Error
+
+ int f4 = -1; // This should by itself be fine, but recovery is bad.
+ int @annotation f5 = -1; // Error
+ int f6 = -1, @annotation f7 = -1; // Error
+}
+
+void foo() {
+ var l0; // OK
+ var @annotation l1; // Error
+ var l2, @annotation l3; // Error
+
+ int l4 = -1; // This should by itself be fine, but recovery is bad.
+ int @annotation l5 = -1; // Error
+ int l6 = -1, @annotation l7 = -1; // Error
+
+ for (
+ var @annotation i1 = 0, @annotation i2 = 0 // Error
+ ;;) {
+ break;
+ }
+}
diff --git a/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.strong.expect b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.strong.expect
new file mode 100644
index 0000000..6726cd7
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.strong.expect
@@ -0,0 +1,254 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:13:5: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation v1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:13:1: Error: Expected ';' after this.
+// var @annotation v1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:13:17: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var @annotation v1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:14:9: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var v2, @annotation v3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:14:9: Error: Expected ';' after this.
+// var v2, @annotation v3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Error: Expected ';' after this.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:17: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:14: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:14: Error: Expected ';' after this.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:22:7: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation f1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:22:3: Error: Expected ';' after this.
+// var @annotation f1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:22:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var @annotation f1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:23:11: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var f2, @annotation f3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:23:9: Error: Expected ';' after this.
+// var f2, @annotation f3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:23:23: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var f2, @annotation f3; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Error: Expected ';' after this.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation f5 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:16: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:14: Error: Expected ';' after this.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:28: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:25:3: Error: 'int' isn't a type.
+// int f4 = -1; // This should by itself be fine, but recovery is bad.
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Context: This isn't a type.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:3: Error: 'int' isn't a type.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Context: This isn't a type.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:14:10: Error: 'annotation' isn't a type.
+// var v2, @annotation v3; // Error
+// ^^^^^^^^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:10:7: Context: This isn't a type.
+// const annotation = null;
+// ^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:16:1: Error: 'int' isn't a type.
+// int v4 = -1; // This should by itself be fine, but recovery is bad.
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Context: This isn't a type.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:1: Error: 'int' isn't a type.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Context: This isn't a type.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:15: Error: 'annotation' isn't a type.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^^^^^^^^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:10:7: Context: This isn't a type.
+// const annotation = null;
+// ^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:32:7: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation l1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:32:3: Error: Expected ';' after this.
+// var @annotation l1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:32:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var @annotation l1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:33:11: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var l2, @annotation l3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:33:9: Error: Expected ';' after this.
+// var l2, @annotation l3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:33:23: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var l2, @annotation l3; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:35:3: Error: 'int' isn't a type.
+// int l4 = -1; // This should by itself be fine, but recovery is bad.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:36:3: Error: Expected ';' after this.
+// int @annotation l5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:36:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation l5 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:37:3: Error: 'int' isn't a type.
+// int l6 = -1, @annotation l7 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:37:16: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// int l6 = -1, @annotation l7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:37:14: Error: Expected ';' after this.
+// int l6 = -1, @annotation l7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:37:28: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int l6 = -1, @annotation l7 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:40:9: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation i1 = 0, @annotation i2 = 0 // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:40:5: Error: Expected ';' after this.
+// var @annotation i1 = 0, @annotation i2 = 0 // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:40:9: Error: Unexpected token '@'.
+// var @annotation i1 = 0, @annotation i2 = 0 // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ field dynamic f0 = null;
+ @#C1
+ field dynamic f1 = null;
+ @#C1
+ field dynamic f3 = null;
+ field invalid-type f4 = 1.{core::int::unary-}(){() → core::int};
+ field dynamic int = null;
+ @#C1
+ field core::int f5 = 1.{core::int::unary-}(){() → core::int};
+ @#C1
+ field core::int f7 = 1.{core::int::unary-}(){() → core::int};
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+static const field dynamic annotation = #C1;
+static field dynamic v0;
+@#C1
+static field dynamic v1;
+static field invalid-type v3;
+static field invalid-type v4 = 1.{core::int::unary-}(){() → core::int};
+static field dynamic int;
+@#C1
+static field core::int v5 = 1.{core::int::unary-}(){() → core::int};
+static field invalid-type v7 = 1.{core::int::unary-}(){() → core::int};
+static method foo() → void {}
+
+constants {
+ #C1 = null
+}
diff --git a/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.strong.modular.expect
new file mode 100644
index 0000000..6726cd7
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.strong.modular.expect
@@ -0,0 +1,254 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:13:5: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation v1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:13:1: Error: Expected ';' after this.
+// var @annotation v1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:13:17: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var @annotation v1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:14:9: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var v2, @annotation v3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:14:9: Error: Expected ';' after this.
+// var v2, @annotation v3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Error: Expected ';' after this.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:17: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:14: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:14: Error: Expected ';' after this.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:22:7: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation f1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:22:3: Error: Expected ';' after this.
+// var @annotation f1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:22:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var @annotation f1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:23:11: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var f2, @annotation f3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:23:9: Error: Expected ';' after this.
+// var f2, @annotation f3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:23:23: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var f2, @annotation f3; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Error: Expected ';' after this.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation f5 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:16: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:14: Error: Expected ';' after this.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:28: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:25:3: Error: 'int' isn't a type.
+// int f4 = -1; // This should by itself be fine, but recovery is bad.
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Context: This isn't a type.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:3: Error: 'int' isn't a type.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Context: This isn't a type.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:14:10: Error: 'annotation' isn't a type.
+// var v2, @annotation v3; // Error
+// ^^^^^^^^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:10:7: Context: This isn't a type.
+// const annotation = null;
+// ^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:16:1: Error: 'int' isn't a type.
+// int v4 = -1; // This should by itself be fine, but recovery is bad.
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Context: This isn't a type.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:1: Error: 'int' isn't a type.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Context: This isn't a type.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:15: Error: 'annotation' isn't a type.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^^^^^^^^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:10:7: Context: This isn't a type.
+// const annotation = null;
+// ^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:32:7: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation l1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:32:3: Error: Expected ';' after this.
+// var @annotation l1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:32:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var @annotation l1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:33:11: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var l2, @annotation l3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:33:9: Error: Expected ';' after this.
+// var l2, @annotation l3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:33:23: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var l2, @annotation l3; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:35:3: Error: 'int' isn't a type.
+// int l4 = -1; // This should by itself be fine, but recovery is bad.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:36:3: Error: Expected ';' after this.
+// int @annotation l5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:36:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation l5 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:37:3: Error: 'int' isn't a type.
+// int l6 = -1, @annotation l7 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:37:16: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// int l6 = -1, @annotation l7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:37:14: Error: Expected ';' after this.
+// int l6 = -1, @annotation l7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:37:28: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int l6 = -1, @annotation l7 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:40:9: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation i1 = 0, @annotation i2 = 0 // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:40:5: Error: Expected ';' after this.
+// var @annotation i1 = 0, @annotation i2 = 0 // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:40:9: Error: Unexpected token '@'.
+// var @annotation i1 = 0, @annotation i2 = 0 // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ field dynamic f0 = null;
+ @#C1
+ field dynamic f1 = null;
+ @#C1
+ field dynamic f3 = null;
+ field invalid-type f4 = 1.{core::int::unary-}(){() → core::int};
+ field dynamic int = null;
+ @#C1
+ field core::int f5 = 1.{core::int::unary-}(){() → core::int};
+ @#C1
+ field core::int f7 = 1.{core::int::unary-}(){() → core::int};
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+static const field dynamic annotation = #C1;
+static field dynamic v0;
+@#C1
+static field dynamic v1;
+static field invalid-type v3;
+static field invalid-type v4 = 1.{core::int::unary-}(){() → core::int};
+static field dynamic int;
+@#C1
+static field core::int v5 = 1.{core::int::unary-}(){() → core::int};
+static field invalid-type v7 = 1.{core::int::unary-}(){() → core::int};
+static method foo() → void {}
+
+constants {
+ #C1 = null
+}
diff --git a/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.strong.outline.expect
new file mode 100644
index 0000000..62dbb80
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.strong.outline.expect
@@ -0,0 +1,188 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:13:5: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation v1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:13:1: Error: Expected ';' after this.
+// var @annotation v1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:13:17: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var @annotation v1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:14:9: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var v2, @annotation v3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:14:9: Error: Expected ';' after this.
+// var v2, @annotation v3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Error: Expected ';' after this.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:17: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:14: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:14: Error: Expected ';' after this.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:22:7: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation f1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:22:3: Error: Expected ';' after this.
+// var @annotation f1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:22:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var @annotation f1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:23:11: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var f2, @annotation f3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:23:9: Error: Expected ';' after this.
+// var f2, @annotation f3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:23:23: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var f2, @annotation f3; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Error: Expected ';' after this.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation f5 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:16: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:14: Error: Expected ';' after this.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:28: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:25:3: Error: 'int' isn't a type.
+// int f4 = -1; // This should by itself be fine, but recovery is bad.
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Context: This isn't a type.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:3: Error: 'int' isn't a type.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Context: This isn't a type.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:14:10: Error: 'annotation' isn't a type.
+// var v2, @annotation v3; // Error
+// ^^^^^^^^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:10:7: Context: This isn't a type.
+// const annotation = null;
+// ^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:16:1: Error: 'int' isn't a type.
+// int v4 = -1; // This should by itself be fine, but recovery is bad.
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Context: This isn't a type.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:1: Error: 'int' isn't a type.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Context: This isn't a type.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:15: Error: 'annotation' isn't a type.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^^^^^^^^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:10:7: Context: This isn't a type.
+// const annotation = null;
+// ^^^^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ field dynamic f0;
+ @self::annotation
+ field dynamic f1;
+ @self::annotation
+ field dynamic f3;
+ field invalid-type f4;
+ field dynamic int;
+ @self::annotation
+ field core::int f5;
+ @self::annotation
+ field core::int f7;
+ synthetic constructor •() → self::C
+ ;
+}
+static const field dynamic annotation = null;
+static field dynamic v0;
+@self::annotation
+static field dynamic v1;
+static field invalid-type v3;
+static field invalid-type v4;
+static field dynamic int;
+@self::annotation
+static field core::int v5;
+static field invalid-type v7;
+static method foo() → void
+ ;
+
+
+Extra constant evaluation status:
+Evaluated: StaticGet @ org-dartlang-testcase:///metadata_variable_declaration.dart:22:8 -> NullConstant(null)
+Evaluated: StaticGet @ org-dartlang-testcase:///metadata_variable_declaration.dart:23:12 -> NullConstant(null)
+Evaluated: StaticGet @ org-dartlang-testcase:///metadata_variable_declaration.dart:26:8 -> NullConstant(null)
+Evaluated: StaticGet @ org-dartlang-testcase:///metadata_variable_declaration.dart:27:17 -> NullConstant(null)
+Evaluated: StaticGet @ org-dartlang-testcase:///metadata_variable_declaration.dart:13:6 -> NullConstant(null)
+Evaluated: StaticGet @ org-dartlang-testcase:///metadata_variable_declaration.dart:17:6 -> NullConstant(null)
+Extra constant evaluation: evaluated: 6, effectively constant: 6
diff --git a/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.strong.transformed.expect
new file mode 100644
index 0000000..2ce61cd
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.strong.transformed.expect
@@ -0,0 +1,263 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:13:5: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation v1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:13:1: Error: Expected ';' after this.
+// var @annotation v1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:13:17: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var @annotation v1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:14:9: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var v2, @annotation v3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:14:9: Error: Expected ';' after this.
+// var v2, @annotation v3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Error: Expected ';' after this.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:17: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:14: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:14: Error: Expected ';' after this.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:22:7: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation f1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:22:3: Error: Expected ';' after this.
+// var @annotation f1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:22:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var @annotation f1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:23:11: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var f2, @annotation f3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:23:9: Error: Expected ';' after this.
+// var f2, @annotation f3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:23:23: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var f2, @annotation f3; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Error: Expected ';' after this.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation f5 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:16: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:14: Error: Expected ';' after this.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:28: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:25:3: Error: 'int' isn't a type.
+// int f4 = -1; // This should by itself be fine, but recovery is bad.
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Context: This isn't a type.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:27:3: Error: 'int' isn't a type.
+// int f6 = -1, @annotation f7 = -1; // Error
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:26:3: Context: This isn't a type.
+// int @annotation f5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:14:10: Error: 'annotation' isn't a type.
+// var v2, @annotation v3; // Error
+// ^^^^^^^^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:10:7: Context: This isn't a type.
+// const annotation = null;
+// ^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:16:1: Error: 'int' isn't a type.
+// int v4 = -1; // This should by itself be fine, but recovery is bad.
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Context: This isn't a type.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:1: Error: 'int' isn't a type.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:17:1: Context: This isn't a type.
+// int @annotation v5 = -1; // Error --- I think this is where the bad recovery happens.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:18:15: Error: 'annotation' isn't a type.
+// int v6 = -1, @annotation v7 = -1; // Error
+// ^^^^^^^^^^
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:10:7: Context: This isn't a type.
+// const annotation = null;
+// ^^^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:32:7: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation l1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:32:3: Error: Expected ';' after this.
+// var @annotation l1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:32:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var @annotation l1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:33:11: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var l2, @annotation l3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:33:9: Error: Expected ';' after this.
+// var l2, @annotation l3; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:33:23: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// var l2, @annotation l3; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:35:3: Error: 'int' isn't a type.
+// int l4 = -1; // This should by itself be fine, but recovery is bad.
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:36:3: Error: Expected ';' after this.
+// int @annotation l5 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:36:19: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int @annotation l5 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:37:3: Error: 'int' isn't a type.
+// int l6 = -1, @annotation l7 = -1; // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:37:16: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// int l6 = -1, @annotation l7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:37:14: Error: Expected ';' after this.
+// int l6 = -1, @annotation l7 = -1; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:37:28: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// Try adding the name of the type of the variable or the keyword 'var'.
+// int l6 = -1, @annotation l7 = -1; // Error
+// ^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:40:9: Error: Expected an identifier, but got '@'.
+// Try inserting an identifier before '@'.
+// var @annotation i1 = 0, @annotation i2 = 0 // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:40:5: Error: Expected ';' after this.
+// var @annotation i1 = 0, @annotation i2 = 0 // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/metadata_variable_declaration.dart:40:9: Error: Unexpected token '@'.
+// var @annotation i1 = 0, @annotation i2 = 0 // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ field dynamic f0 = null;
+ @#C1
+ field dynamic f1 = null;
+ @#C1
+ field dynamic f3 = null;
+ field invalid-type f4 = 1.{core::int::unary-}(){() → core::int};
+ field dynamic int = null;
+ @#C1
+ field core::int f5 = 1.{core::int::unary-}(){() → core::int};
+ @#C1
+ field core::int f7 = 1.{core::int::unary-}(){() → core::int};
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+static const field dynamic annotation = #C1;
+static field dynamic v0;
+@#C1
+static field dynamic v1;
+static field invalid-type v3;
+static field invalid-type v4 = 1.{core::int::unary-}(){() → core::int};
+static field dynamic int;
+@#C1
+static field core::int v5 = 1.{core::int::unary-}(){() → core::int};
+static field invalid-type v7 = 1.{core::int::unary-}(){() → core::int};
+static method foo() → void {}
+
+constants {
+ #C1 = null
+}
+
+Extra constant evaluation status:
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///metadata_variable_declaration.dart:25:12 -> IntConstant(-1)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///metadata_variable_declaration.dart:26:24 -> IntConstant(-1)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///metadata_variable_declaration.dart:27:33 -> IntConstant(-1)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///metadata_variable_declaration.dart:16:10 -> IntConstant(-1)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///metadata_variable_declaration.dart:17:22 -> IntConstant(-1)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///metadata_variable_declaration.dart:18:31 -> IntConstant(-1)
+Extra constant evaluation: evaluated: 6, effectively constant: 6
diff --git a/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.textual_outline.expect
new file mode 100644
index 0000000..0e642a2
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.textual_outline.expect
@@ -0,0 +1,44 @@
+const annotation = null;
+
+var v0;
+
+var ;
+
+@annotation
+
+v1;
+
+var v2, @;
+
+annotation v3;
+
+int v4 = -1;
+
+int ;
+
+@annotation
+
+v5 = -1;
+
+int v6 = -1, @;
+
+annotation v7 = -1;
+
+class C {
+ var f0;
+ var ;
+ @annotation
+ f1;
+ var f2, ;
+ @annotation
+ f3;
+ int f4 = -1;
+ int ;
+ @annotation
+ f5 = -1;
+ int f6 = -1, ;
+ @annotation
+ f7 = -1;
+}
+
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..4dddbd4
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/metadata_variable_declaration.dart.textual_outline_modelled.expect
@@ -0,0 +1,42 @@
+annotation v3;
+
+annotation v7 = -1;
+
+class C {
+ @annotation
+ f1;
+ @annotation
+ f3;
+ @annotation
+ f5 = -1;
+ @annotation
+ f7 = -1;
+ int ;
+ int f4 = -1;
+ int f6 = -1, ;
+ var ;
+ var f0;
+ var f2, ;
+}
+
+const annotation = null;
+
+int ;
+
+int v4 = -1;
+
+int v6 = -1, @;
+
+@annotation
+v1;
+
+@annotation
+v5 = -1;
+
+var ;
+
+var v0;
+
+var v2, @;
+
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/operator_unsupported_test.dart b/pkg/front_end/testcases/coverage/operator_unsupported_test.dart
new file mode 100644
index 0000000..db859d8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/operator_unsupported_test.dart
@@ -0,0 +1,23 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/operator/unsupported_test.dart
+
+// Test handling of unsupported operators.
+
+library unsupported_operators;
+
+class C {
+ m() {
+ print(super === null); // Error
+ print(super !== null); // Error
+ }
+}
+
+void foo() {
+ new C().m();
+ new C().m();
+ print("foo" === null); // Error
+ print("foo" !== null); // Error
+}
diff --git a/pkg/front_end/testcases/coverage/operator_unsupported_test.dart.strong.expect b/pkg/front_end/testcases/coverage/operator_unsupported_test.dart.strong.expect
new file mode 100644
index 0000000..fdc699a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/operator_unsupported_test.dart.strong.expect
@@ -0,0 +1,62 @@
+library unsupported_operators;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:13:17: Error: The '===' operator is not supported.
+// print(super === null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:14:17: Error: The '!==' operator is not supported.
+// print(super !== null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:21:15: Error: The '===' operator is not supported.
+// print("foo" === null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:22:15: Error: The '!==' operator is not supported.
+// print("foo" !== null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:13:17: Error: The string '===' isn't a user-definable operator.
+// print(super === null); // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:14:17: Error: The string '!==' isn't a user-definable operator.
+// print(super !== null); // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:21:15: Error: The string '===' isn't a user-definable operator.
+// print("foo" === null); // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:22:15: Error: The string '!==' isn't a user-definable operator.
+// print("foo" !== null); // Error
+// ^^^
+//
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+ method m() → dynamic {
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/operator_unsupported_test.dart:13:17: Error: The string '===' isn't a user-definable operator.
+ print(super === null); // Error
+ ^^^");
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/operator_unsupported_test.dart:14:17: Error: The string '!==' isn't a user-definable operator.
+ print(super !== null); // Error
+ ^^^");
+ }
+}
+static method foo() → void {
+ new self::C::•().{self::C::m}(){() → dynamic};
+ new self::C::•().{self::C::m}(){() → dynamic};
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/operator_unsupported_test.dart:21:15: Error: The string '===' isn't a user-definable operator.
+ print(\"foo\" === null); // Error
+ ^^^");
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/operator_unsupported_test.dart:22:15: Error: The string '!==' isn't a user-definable operator.
+ print(\"foo\" !== null); // Error
+ ^^^");
+}
diff --git a/pkg/front_end/testcases/coverage/operator_unsupported_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/operator_unsupported_test.dart.strong.modular.expect
new file mode 100644
index 0000000..fdc699a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/operator_unsupported_test.dart.strong.modular.expect
@@ -0,0 +1,62 @@
+library unsupported_operators;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:13:17: Error: The '===' operator is not supported.
+// print(super === null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:14:17: Error: The '!==' operator is not supported.
+// print(super !== null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:21:15: Error: The '===' operator is not supported.
+// print("foo" === null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:22:15: Error: The '!==' operator is not supported.
+// print("foo" !== null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:13:17: Error: The string '===' isn't a user-definable operator.
+// print(super === null); // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:14:17: Error: The string '!==' isn't a user-definable operator.
+// print(super !== null); // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:21:15: Error: The string '===' isn't a user-definable operator.
+// print("foo" === null); // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:22:15: Error: The string '!==' isn't a user-definable operator.
+// print("foo" !== null); // Error
+// ^^^
+//
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+ method m() → dynamic {
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/operator_unsupported_test.dart:13:17: Error: The string '===' isn't a user-definable operator.
+ print(super === null); // Error
+ ^^^");
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/operator_unsupported_test.dart:14:17: Error: The string '!==' isn't a user-definable operator.
+ print(super !== null); // Error
+ ^^^");
+ }
+}
+static method foo() → void {
+ new self::C::•().{self::C::m}(){() → dynamic};
+ new self::C::•().{self::C::m}(){() → dynamic};
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/operator_unsupported_test.dart:21:15: Error: The string '===' isn't a user-definable operator.
+ print(\"foo\" === null); // Error
+ ^^^");
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/operator_unsupported_test.dart:22:15: Error: The string '!==' isn't a user-definable operator.
+ print(\"foo\" !== null); // Error
+ ^^^");
+}
diff --git a/pkg/front_end/testcases/coverage/operator_unsupported_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/operator_unsupported_test.dart.strong.outline.expect
new file mode 100644
index 0000000..a51c3e4
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/operator_unsupported_test.dart.strong.outline.expect
@@ -0,0 +1,31 @@
+library unsupported_operators;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:13:17: Error: The '===' operator is not supported.
+// print(super === null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:14:17: Error: The '!==' operator is not supported.
+// print(super !== null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:21:15: Error: The '===' operator is not supported.
+// print("foo" === null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:22:15: Error: The '!==' operator is not supported.
+// print("foo" !== null); // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ synthetic constructor •() → self::C
+ ;
+ method m() → dynamic
+ ;
+}
+static method foo() → void
+ ;
diff --git a/pkg/front_end/testcases/coverage/operator_unsupported_test.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/operator_unsupported_test.dart.strong.transformed.expect
new file mode 100644
index 0000000..fdc699a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/operator_unsupported_test.dart.strong.transformed.expect
@@ -0,0 +1,62 @@
+library unsupported_operators;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:13:17: Error: The '===' operator is not supported.
+// print(super === null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:14:17: Error: The '!==' operator is not supported.
+// print(super !== null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:21:15: Error: The '===' operator is not supported.
+// print("foo" === null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:22:15: Error: The '!==' operator is not supported.
+// print("foo" !== null); // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:13:17: Error: The string '===' isn't a user-definable operator.
+// print(super === null); // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:14:17: Error: The string '!==' isn't a user-definable operator.
+// print(super !== null); // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:21:15: Error: The string '===' isn't a user-definable operator.
+// print("foo" === null); // Error
+// ^^^
+//
+// pkg/front_end/testcases/coverage/operator_unsupported_test.dart:22:15: Error: The string '!==' isn't a user-definable operator.
+// print("foo" !== null); // Error
+// ^^^
+//
+import self as self;
+import "dart:core" as core;
+
+class C extends core::Object {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+ method m() → dynamic {
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/operator_unsupported_test.dart:13:17: Error: The string '===' isn't a user-definable operator.
+ print(super === null); // Error
+ ^^^");
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/operator_unsupported_test.dart:14:17: Error: The string '!==' isn't a user-definable operator.
+ print(super !== null); // Error
+ ^^^");
+ }
+}
+static method foo() → void {
+ new self::C::•().{self::C::m}(){() → dynamic};
+ new self::C::•().{self::C::m}(){() → dynamic};
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/operator_unsupported_test.dart:21:15: Error: The string '===' isn't a user-definable operator.
+ print(\"foo\" === null); // Error
+ ^^^");
+ core::print(invalid-expression "pkg/front_end/testcases/coverage/operator_unsupported_test.dart:22:15: Error: The string '!==' isn't a user-definable operator.
+ print(\"foo\" !== null); // Error
+ ^^^");
+}
diff --git a/pkg/front_end/testcases/coverage/set_literal_test.dart b/pkg/front_end/testcases/coverage/set_literal_test.dart
new file mode 100644
index 0000000..edaf168
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/set_literal_test.dart
@@ -0,0 +1,10 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/set_literals/invalid_set_literal_test.dart
+
+void foo() {
+ var x = <int>{1}; // OK
+ var y = <int>{1: 1}; // Error
+}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/coverage/set_literal_test.dart.strong.expect b/pkg/front_end/testcases/coverage/set_literal_test.dart.strong.expect
new file mode 100644
index 0000000..8ee025c
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/set_literal_test.dart.strong.expect
@@ -0,0 +1,21 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/set_literal_test.dart:9:18: Error: Expected ',' before this.
+// var y = <int>{1: 1}; // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method foo() → void {
+ core::Set<core::int> x = block {
+ final core::Set<core::int> #t1 = col::LinkedHashSet::•<core::int>();
+ #t1.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ } =>#t1;
+ core::Set<core::int> y = block {
+ final core::Set<core::int> #t2 = col::LinkedHashSet::•<core::int>();
+ } =>#t2;
+}
diff --git a/pkg/front_end/testcases/coverage/set_literal_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/set_literal_test.dart.strong.modular.expect
new file mode 100644
index 0000000..8ee025c
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/set_literal_test.dart.strong.modular.expect
@@ -0,0 +1,21 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/set_literal_test.dart:9:18: Error: Expected ',' before this.
+// var y = <int>{1: 1}; // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method foo() → void {
+ core::Set<core::int> x = block {
+ final core::Set<core::int> #t1 = col::LinkedHashSet::•<core::int>();
+ #t1.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ } =>#t1;
+ core::Set<core::int> y = block {
+ final core::Set<core::int> #t2 = col::LinkedHashSet::•<core::int>();
+ } =>#t2;
+}
diff --git a/pkg/front_end/testcases/coverage/set_literal_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/set_literal_test.dart.strong.outline.expect
new file mode 100644
index 0000000..4a8528a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/set_literal_test.dart.strong.outline.expect
@@ -0,0 +1,5 @@
+library;
+import self as self;
+
+static method foo() → void
+ ;
diff --git a/pkg/front_end/testcases/coverage/set_literal_test.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/set_literal_test.dart.strong.transformed.expect
new file mode 100644
index 0000000..3a74cd5
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/set_literal_test.dart.strong.transformed.expect
@@ -0,0 +1,21 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/set_literal_test.dart:9:18: Error: Expected ',' before this.
+// var y = <int>{1: 1}; // Error
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:collection" as col;
+
+static method foo() → void {
+ core::Set<core::int> x = block {
+ final core::Set<core::int> #t1 = new col::_Set::•<core::int>();
+ #t1.{core::Set::add}{Invariant}(1){(core::int) → core::bool};
+ } =>#t1;
+ core::Set<core::int> y = block {
+ final core::Set<core::int> #t2 = new col::_Set::•<core::int>();
+ } =>#t2;
+}
diff --git a/pkg/front_end/testcases/coverage/set_literal_test.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/set_literal_test.dart.textual_outline.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/set_literal_test.dart.textual_outline.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/set_literal_test.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/set_literal_test.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/set_literal_test.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/static2_test.dart b/pkg/front_end/testcases/coverage/static2_test.dart
new file mode 100644
index 0000000..834b0f5
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/static2_test.dart
@@ -0,0 +1,10 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/compile_time_constant/static2_test.dart
+
+class A {
+ final int x;
+ const A.a4(String this.x); // Error
+}
diff --git a/pkg/front_end/testcases/coverage/static2_test.dart.strong.expect b/pkg/front_end/testcases/coverage/static2_test.dart.strong.expect
new file mode 100644
index 0000000..4193e0f
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/static2_test.dart.strong.expect
@@ -0,0 +1,21 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/static2_test.dart:9:26: Error: The type of parameter 'x', 'String' is not a subtype of the corresponding field's type, 'int'.
+// Try changing the type of parameter 'x' to a subtype of 'int'.
+// const A.a4(String this.x); // Error
+// ^
+// pkg/front_end/testcases/coverage/static2_test.dart:8:13: Context: The field that corresponds to the parameter.
+// final int x;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object /*hasConstConstructor*/ {
+ final field core::int x;
+ const constructor a4(core::String x) → self::A
+ : self::A::x = x, super core::Object::•()
+ ;
+}
diff --git a/pkg/front_end/testcases/coverage/static2_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/static2_test.dart.strong.modular.expect
new file mode 100644
index 0000000..4193e0f
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/static2_test.dart.strong.modular.expect
@@ -0,0 +1,21 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/static2_test.dart:9:26: Error: The type of parameter 'x', 'String' is not a subtype of the corresponding field's type, 'int'.
+// Try changing the type of parameter 'x' to a subtype of 'int'.
+// const A.a4(String this.x); // Error
+// ^
+// pkg/front_end/testcases/coverage/static2_test.dart:8:13: Context: The field that corresponds to the parameter.
+// final int x;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object /*hasConstConstructor*/ {
+ final field core::int x;
+ const constructor a4(core::String x) → self::A
+ : self::A::x = x, super core::Object::•()
+ ;
+}
diff --git a/pkg/front_end/testcases/coverage/static2_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/static2_test.dart.strong.outline.expect
new file mode 100644
index 0000000..4193e0f
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/static2_test.dart.strong.outline.expect
@@ -0,0 +1,21 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/static2_test.dart:9:26: Error: The type of parameter 'x', 'String' is not a subtype of the corresponding field's type, 'int'.
+// Try changing the type of parameter 'x' to a subtype of 'int'.
+// const A.a4(String this.x); // Error
+// ^
+// pkg/front_end/testcases/coverage/static2_test.dart:8:13: Context: The field that corresponds to the parameter.
+// final int x;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object /*hasConstConstructor*/ {
+ final field core::int x;
+ const constructor a4(core::String x) → self::A
+ : self::A::x = x, super core::Object::•()
+ ;
+}
diff --git a/pkg/front_end/testcases/coverage/static2_test.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/static2_test.dart.textual_outline.expect
new file mode 100644
index 0000000..2e6e04d
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/static2_test.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+class A {
+ final int x;
+ const A.a4(String this.x);
+}
diff --git a/pkg/front_end/testcases/coverage/static2_test.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/static2_test.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..bd2dde9
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/static2_test.dart.textual_outline_modelled.expect
@@ -0,0 +1,4 @@
+class A {
+ const A.a4(String this.x);
+ final int x;
+}
diff --git a/pkg/front_end/testcases/coverage/switch3_test.dart b/pkg/front_end/testcases/coverage/switch3_test.dart
new file mode 100644
index 0000000..2e18686
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch3_test.dart
@@ -0,0 +1,18 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/switch/switch3_test.dart
+
+/// Check that 'continue' to switch statement is illegal.
+
+void foo() {
+ var a = 5;
+ var x;
+ bar: switch (a) {
+ case 1: x = 1; break;
+ case 6: x = 2; continue; // Error
+ case 8: break;
+ }
+ return a;
+}
diff --git a/pkg/front_end/testcases/coverage/switch3_test.dart.strong.expect b/pkg/front_end/testcases/coverage/switch3_test.dart.strong.expect
new file mode 100644
index 0000000..d8a5727
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch3_test.dart.strong.expect
@@ -0,0 +1,27 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/switch3_test.dart:14:20: Error: A continue statement in a switch statement must have a label as a target.
+// Try adding a label associated with one of the case clauses to the continue statement.
+// case 6: x = 2; continue; // Error
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/switch3_test.dart:17:10: Error: Can't return a value from a void function.
+// return a;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::int a = 5;
+ dynamic x;
+ invalid-expression "pkg/front_end/testcases/coverage/switch3_test.dart:14:20: Error: A continue statement in a switch statement must have a label as a target.
+Try adding a label associated with one of the case clauses to the continue statement.
+ case 6: x = 2; continue; // Error
+ ^^^^^^^^";
+ return invalid-expression "pkg/front_end/testcases/coverage/switch3_test.dart:17:10: Error: Can't return a value from a void function.
+ return a;
+ ^" in a;
+}
diff --git a/pkg/front_end/testcases/coverage/switch3_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/switch3_test.dart.strong.modular.expect
new file mode 100644
index 0000000..d8a5727
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch3_test.dart.strong.modular.expect
@@ -0,0 +1,27 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/switch3_test.dart:14:20: Error: A continue statement in a switch statement must have a label as a target.
+// Try adding a label associated with one of the case clauses to the continue statement.
+// case 6: x = 2; continue; // Error
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/switch3_test.dart:17:10: Error: Can't return a value from a void function.
+// return a;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::int a = 5;
+ dynamic x;
+ invalid-expression "pkg/front_end/testcases/coverage/switch3_test.dart:14:20: Error: A continue statement in a switch statement must have a label as a target.
+Try adding a label associated with one of the case clauses to the continue statement.
+ case 6: x = 2; continue; // Error
+ ^^^^^^^^";
+ return invalid-expression "pkg/front_end/testcases/coverage/switch3_test.dart:17:10: Error: Can't return a value from a void function.
+ return a;
+ ^" in a;
+}
diff --git a/pkg/front_end/testcases/coverage/switch3_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/switch3_test.dart.strong.outline.expect
new file mode 100644
index 0000000..4a8528a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch3_test.dart.strong.outline.expect
@@ -0,0 +1,5 @@
+library;
+import self as self;
+
+static method foo() → void
+ ;
diff --git a/pkg/front_end/testcases/coverage/switch3_test.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/switch3_test.dart.strong.transformed.expect
new file mode 100644
index 0000000..d8a5727
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch3_test.dart.strong.transformed.expect
@@ -0,0 +1,27 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/switch3_test.dart:14:20: Error: A continue statement in a switch statement must have a label as a target.
+// Try adding a label associated with one of the case clauses to the continue statement.
+// case 6: x = 2; continue; // Error
+// ^^^^^^^^
+//
+// pkg/front_end/testcases/coverage/switch3_test.dart:17:10: Error: Can't return a value from a void function.
+// return a;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::int a = 5;
+ dynamic x;
+ invalid-expression "pkg/front_end/testcases/coverage/switch3_test.dart:14:20: Error: A continue statement in a switch statement must have a label as a target.
+Try adding a label associated with one of the case clauses to the continue statement.
+ case 6: x = 2; continue; // Error
+ ^^^^^^^^";
+ return invalid-expression "pkg/front_end/testcases/coverage/switch3_test.dart:17:10: Error: Can't return a value from a void function.
+ return a;
+ ^" in a;
+}
diff --git a/pkg/front_end/testcases/coverage/switch3_test.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/switch3_test.dart.textual_outline.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch3_test.dart.textual_outline.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/switch3_test.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/switch3_test.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch3_test.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/switch4_test.dart b/pkg/front_end/testcases/coverage/switch4_test.dart
new file mode 100644
index 0000000..ea5eabe
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch4_test.dart
@@ -0,0 +1,23 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/switch/switch4_test.dart
+
+/// Discover unresolved case labels.
+
+void foo() {
+ var a = 5;
+ var x;
+ switch (a) {
+ case 1:
+ x = 1;
+ continue L; // Error
+ case 6:
+ x = 2;
+ break;
+ case 8:
+ break;
+ }
+ return a;
+}
diff --git a/pkg/front_end/testcases/coverage/switch4_test.dart.strong.expect b/pkg/front_end/testcases/coverage/switch4_test.dart.strong.expect
new file mode 100644
index 0000000..7fcdf2b
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch4_test.dart.strong.expect
@@ -0,0 +1,53 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/switch4_test.dart:15:7: Error: Can't find label 'L'.
+// Try defining the label, or correcting the name to match an existing label.
+// continue L; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/switch4_test.dart:22:10: Error: Can't return a value from a void function.
+// return a;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::int a = 5;
+ dynamic x;
+ #L1:
+ switch(a) /* core::int */ {
+ #L2:
+ case #C1:
+ {
+ x = 1;
+ invalid-expression "pkg/front_end/testcases/coverage/switch4_test.dart:15:7: Error: Can't find label 'L'.
+Try defining the label, or correcting the name to match an existing label.
+ continue L; // Error
+ ^";
+ break #L1;
+ }
+ #L3:
+ case #C2:
+ {
+ x = 2;
+ break #L1;
+ }
+ #L4:
+ case #C3:
+ {
+ break #L1;
+ }
+ }
+ return invalid-expression "pkg/front_end/testcases/coverage/switch4_test.dart:22:10: Error: Can't return a value from a void function.
+ return a;
+ ^" in a;
+}
+
+constants {
+ #C1 = 1
+ #C2 = 6
+ #C3 = 8
+}
diff --git a/pkg/front_end/testcases/coverage/switch4_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/switch4_test.dart.strong.modular.expect
new file mode 100644
index 0000000..7fcdf2b
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch4_test.dart.strong.modular.expect
@@ -0,0 +1,53 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/switch4_test.dart:15:7: Error: Can't find label 'L'.
+// Try defining the label, or correcting the name to match an existing label.
+// continue L; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/switch4_test.dart:22:10: Error: Can't return a value from a void function.
+// return a;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::int a = 5;
+ dynamic x;
+ #L1:
+ switch(a) /* core::int */ {
+ #L2:
+ case #C1:
+ {
+ x = 1;
+ invalid-expression "pkg/front_end/testcases/coverage/switch4_test.dart:15:7: Error: Can't find label 'L'.
+Try defining the label, or correcting the name to match an existing label.
+ continue L; // Error
+ ^";
+ break #L1;
+ }
+ #L3:
+ case #C2:
+ {
+ x = 2;
+ break #L1;
+ }
+ #L4:
+ case #C3:
+ {
+ break #L1;
+ }
+ }
+ return invalid-expression "pkg/front_end/testcases/coverage/switch4_test.dart:22:10: Error: Can't return a value from a void function.
+ return a;
+ ^" in a;
+}
+
+constants {
+ #C1 = 1
+ #C2 = 6
+ #C3 = 8
+}
diff --git a/pkg/front_end/testcases/coverage/switch4_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/switch4_test.dart.strong.outline.expect
new file mode 100644
index 0000000..4a8528a
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch4_test.dart.strong.outline.expect
@@ -0,0 +1,5 @@
+library;
+import self as self;
+
+static method foo() → void
+ ;
diff --git a/pkg/front_end/testcases/coverage/switch4_test.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/switch4_test.dart.strong.transformed.expect
new file mode 100644
index 0000000..7fcdf2b
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch4_test.dart.strong.transformed.expect
@@ -0,0 +1,53 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/switch4_test.dart:15:7: Error: Can't find label 'L'.
+// Try defining the label, or correcting the name to match an existing label.
+// continue L; // Error
+// ^
+//
+// pkg/front_end/testcases/coverage/switch4_test.dart:22:10: Error: Can't return a value from a void function.
+// return a;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo() → void {
+ core::int a = 5;
+ dynamic x;
+ #L1:
+ switch(a) /* core::int */ {
+ #L2:
+ case #C1:
+ {
+ x = 1;
+ invalid-expression "pkg/front_end/testcases/coverage/switch4_test.dart:15:7: Error: Can't find label 'L'.
+Try defining the label, or correcting the name to match an existing label.
+ continue L; // Error
+ ^";
+ break #L1;
+ }
+ #L3:
+ case #C2:
+ {
+ x = 2;
+ break #L1;
+ }
+ #L4:
+ case #C3:
+ {
+ break #L1;
+ }
+ }
+ return invalid-expression "pkg/front_end/testcases/coverage/switch4_test.dart:22:10: Error: Can't return a value from a void function.
+ return a;
+ ^" in a;
+}
+
+constants {
+ #C1 = 1
+ #C2 = 6
+ #C3 = 8
+}
diff --git a/pkg/front_end/testcases/coverage/switch4_test.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/switch4_test.dart.textual_outline.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch4_test.dart.textual_outline.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/switch4_test.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/switch4_test.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..85e6cd8
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/switch4_test.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+void foo() {}
diff --git a/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart
new file mode 100644
index 0000000..6174c72
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2024, 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.
+
+// Based on tests/language/exception/try_catch_syntax_test.dart
+
+testIllegalRethrow() {
+ try {
+ rethrow; // Error
+ } catch (e) {}
+
+ try {} catch (e) {
+ } finally {
+ rethrow; // Error
+ }
+}
diff --git a/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.strong.expect b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.strong.expect
new file mode 100644
index 0000000..2239d53
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.strong.expect
@@ -0,0 +1,34 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/try_catch_syntax_test.dart:9:5: Error: 'rethrow' can only be used in catch clauses.
+// rethrow; // Error
+// ^^^^^^^
+//
+// pkg/front_end/testcases/coverage/try_catch_syntax_test.dart:14:5: Error: 'rethrow' can only be used in catch clauses.
+// rethrow; // Error
+// ^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+static method testIllegalRethrow() → dynamic {
+ try {
+ invalid-expression "pkg/front_end/testcases/coverage/try_catch_syntax_test.dart:9:5: Error: 'rethrow' can only be used in catch clauses.
+ rethrow; // Error
+ ^^^^^^^";
+ }
+ on core::Object catch(final core::Object e) {
+ }
+ try
+ try {
+ }
+ on core::Object catch(final core::Object e) {
+ }
+ finally {
+ invalid-expression "pkg/front_end/testcases/coverage/try_catch_syntax_test.dart:14:5: Error: 'rethrow' can only be used in catch clauses.
+ rethrow; // Error
+ ^^^^^^^";
+ }
+}
diff --git a/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.strong.modular.expect b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.strong.modular.expect
new file mode 100644
index 0000000..2239d53
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.strong.modular.expect
@@ -0,0 +1,34 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/try_catch_syntax_test.dart:9:5: Error: 'rethrow' can only be used in catch clauses.
+// rethrow; // Error
+// ^^^^^^^
+//
+// pkg/front_end/testcases/coverage/try_catch_syntax_test.dart:14:5: Error: 'rethrow' can only be used in catch clauses.
+// rethrow; // Error
+// ^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+static method testIllegalRethrow() → dynamic {
+ try {
+ invalid-expression "pkg/front_end/testcases/coverage/try_catch_syntax_test.dart:9:5: Error: 'rethrow' can only be used in catch clauses.
+ rethrow; // Error
+ ^^^^^^^";
+ }
+ on core::Object catch(final core::Object e) {
+ }
+ try
+ try {
+ }
+ on core::Object catch(final core::Object e) {
+ }
+ finally {
+ invalid-expression "pkg/front_end/testcases/coverage/try_catch_syntax_test.dart:14:5: Error: 'rethrow' can only be used in catch clauses.
+ rethrow; // Error
+ ^^^^^^^";
+ }
+}
diff --git a/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.strong.outline.expect b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.strong.outline.expect
new file mode 100644
index 0000000..c0f3a70
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.strong.outline.expect
@@ -0,0 +1,5 @@
+library;
+import self as self;
+
+static method testIllegalRethrow() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.strong.transformed.expect b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.strong.transformed.expect
new file mode 100644
index 0000000..2239d53
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.strong.transformed.expect
@@ -0,0 +1,34 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/coverage/try_catch_syntax_test.dart:9:5: Error: 'rethrow' can only be used in catch clauses.
+// rethrow; // Error
+// ^^^^^^^
+//
+// pkg/front_end/testcases/coverage/try_catch_syntax_test.dart:14:5: Error: 'rethrow' can only be used in catch clauses.
+// rethrow; // Error
+// ^^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+static method testIllegalRethrow() → dynamic {
+ try {
+ invalid-expression "pkg/front_end/testcases/coverage/try_catch_syntax_test.dart:9:5: Error: 'rethrow' can only be used in catch clauses.
+ rethrow; // Error
+ ^^^^^^^";
+ }
+ on core::Object catch(final core::Object e) {
+ }
+ try
+ try {
+ }
+ on core::Object catch(final core::Object e) {
+ }
+ finally {
+ invalid-expression "pkg/front_end/testcases/coverage/try_catch_syntax_test.dart:14:5: Error: 'rethrow' can only be used in catch clauses.
+ rethrow; // Error
+ ^^^^^^^";
+ }
+}
diff --git a/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.textual_outline.expect b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.textual_outline.expect
new file mode 100644
index 0000000..4c21567
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.textual_outline.expect
@@ -0,0 +1 @@
+testIllegalRethrow() {}
diff --git a/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..4c21567
--- /dev/null
+++ b/pkg/front_end/testcases/coverage/try_catch_syntax_test.dart.textual_outline_modelled.expect
@@ -0,0 +1 @@
+testIllegalRethrow() {}
diff --git a/pkg/front_end/testcases/modular.status b/pkg/front_end/testcases/modular.status
index bbb5d39..dfb43cb 100644
--- a/pkg/front_end/testcases/modular.status
+++ b/pkg/front_end/testcases/modular.status
@@ -72,4 +72,4 @@
nnbd/issue42603: TypeCheckError
no_such_method_forwarders/mixin_nsm: TypeCheckError
runtime_checks_new/mixin_forwarding_stub_getter: TypeCheckError
-
+coverage/static2_test: TypeCheckError
diff --git a/pkg/front_end/testcases/outline.status b/pkg/front_end/testcases/outline.status
index 6dd3920..bc42a7e 100644
--- a/pkg/front_end/testcases/outline.status
+++ b/pkg/front_end/testcases/outline.status
@@ -69,3 +69,4 @@
nnbd_mixed/covariant_from_opt_in: TypeCheckError
no_such_method_forwarders/mixin_nsm: TypeCheckError
rasta/native_is_illegal: Pass # Issue 29763
+coverage/static2_test: TypeCheckError
diff --git a/pkg/front_end/testcases/strong.status b/pkg/front_end/testcases/strong.status
index a1234c6..5acbe09 100644
--- a/pkg/front_end/testcases/strong.status
+++ b/pkg/front_end/testcases/strong.status
@@ -109,6 +109,7 @@
nnbd/platform_optional_parameters/main: SemiFuzzFailure
# UNSORTED ONES:
+coverage/static2_test: TypeCheckError
constructor_tearoffs/explicit_instantiation: SemiFuzzFailure
general/bad_import: SemiFuzzCrash # missing end token on import
general/constants/with_unevaluated_agnostic/various_2: SemiFuzzFailure # Looks similar to https://dart-review.googlesource.com/c/sdk/+/242441
diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status
index 647cb2b..1090792 100644
--- a/pkg/front_end/testcases/textual_outline.status
+++ b/pkg/front_end/testcases/textual_outline.status
@@ -71,3 +71,7 @@
rasta/malformed_const_constructor: UnknownChunk # Test has parser errors
regress/ambiguous_builder_01: UnknownChunk # Test has parser errors
regress/issue_34850: UnknownChunk # Test has parser errors
+
+coverage/external_test: FormatterCrash
+coverage/metadata_test: FormatterCrash
+coverage/operator_unsupported_test: EmptyOutput
diff --git a/pkg/front_end/testcases/weak.status b/pkg/front_end/testcases/weak.status
index bef3200..d463f7f 100644
--- a/pkg/front_end/testcases/weak.status
+++ b/pkg/front_end/testcases/weak.status
@@ -68,6 +68,7 @@
general/script_tag_in_part_file: SemiFuzzFailure # `#!/usr/bin/env dart` goes away
# UNSORTED ONES:
+coverage/static2_test: TypeCheckError
constructor_tearoffs/explicit_instantiation: SemiFuzzFailure
general/bad_import: SemiFuzzCrash # missing end token on import
macros/scope_access: SemiFuzzCrash
diff --git a/pkg/front_end/testing.json b/pkg/front_end/testing.json
index af77342..365fb63 100644
--- a/pkg/front_end/testing.json
+++ b/pkg/front_end/testing.json
@@ -93,12 +93,13 @@
".crash_dart"
],
"exclude": [
- "/testcases/.*_part[0-9]*\\.dart$",
"/testcases/.*_lib[0-9]*\\.dart$",
+ "/testcases/.*_part[0-9]*\\.dart$",
"/testcases/agnostic/",
"/testcases/class_modifiers/",
"/testcases/const_functions/",
"/testcases/constructor_tearoffs/",
+ "/testcases/coverage/",
"/testcases/dart2wasm/",
"/testcases/dartdevc/",
"/testcases/dartino/",
@@ -110,11 +111,11 @@
"/testcases/generic_metadata/",
"/testcases/implicit_getter_calls/",
"/testcases/incremental/",
- "/testcases/inference/",
"/testcases/inference_new/",
"/testcases/inference_update_1/",
"/testcases/inference_update_2/",
"/testcases/inference_update_3/",
+ "/testcases/inference/",
"/testcases/instantiate_to_bound/",
"/testcases/late_lowering/",
"/testcases/late_lowering_sentinel/",
@@ -124,6 +125,7 @@
"/testcases/no_such_method_forwarders/",
"/testcases/none/",
"/testcases/nonfunction_type_aliases/",
+ "/testcases/null_aware_elements/",
"/testcases/offsets/",
"/testcases/patterns/",
"/testcases/rasta/",
@@ -139,8 +141,7 @@
"/testcases/unified_collections/",
"/testcases/unscheduled_experiments/",
"/testcases/variance/",
- "/testcases/wildcard_variables/",
- "/testcases/null_aware_elements/"
+ "/testcases/wildcard_variables/"
]
},
{