Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1162)

Unified Diff: pkg/front_end/lib/src/fasta/kernel/body_builder.dart

Issue 2735393002: Compile-time errors instead of internal errors. (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/front_end/lib/src/fasta/kernel/body_builder.dart
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index d52d0ed4f2e09ae891afc4ad7ceb3eed030081ad..d4a5a86262566a8db1097b5ecfa82719a332129b 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -2369,32 +2369,35 @@ abstract class ContextAccessor extends BuilderAccessor {
Expression buildForEffect();
Expression buildAssignment(Expression value, {bool voidContext: false}) {
- return internalError("not supported");
+ return makeInvalidWrite(value);
}
Expression buildNullAwareAssignment(Expression value, DartType type,
{bool voidContext: false}) {
- return internalError("not supported");
+ return makeInvalidWrite(value);
}
Expression buildCompoundAssignment(Name binaryOperator, Expression value,
{bool voidContext: false, Procedure interfaceTarget}) {
- return internalError("not supported");
+ return makeInvalidWrite(value);
}
Expression buildPrefixIncrement(Name binaryOperator,
{bool voidContext: false, Procedure interfaceTarget}) {
- return internalError("not supported");
+ return makeInvalidWrite(null);
}
Expression buildPostfixIncrement(Name binaryOperator,
{bool voidContext: false, Procedure interfaceTarget}) {
- return internalError("not supported");
+ return makeInvalidWrite(null);
}
makeInvalidRead() => internalError("not supported");
- makeInvalidWrite(Expression value) => internalError("not supported");
+ Expression makeInvalidWrite(Expression value) {
+ return helper.buildCompileTimeError(
+ "Can't be used as left-hand side of assignment.", charOffset);
+ }
}
class DelayedAssignment extends ContextAccessor {

Powered by Google App Engine
This is Rietveld 408576698