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

Unified Diff: pkg/front_end/lib/src/fasta/kernel/builder_accessors.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
« no previous file with comments | « pkg/front_end/lib/src/fasta/kernel/body_builder.dart ('k') | tests/co19/co19-kernel.status » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/front_end/lib/src/fasta/kernel/builder_accessors.dart
diff --git a/pkg/front_end/lib/src/fasta/kernel/builder_accessors.dart b/pkg/front_end/lib/src/fasta/kernel/builder_accessors.dart
index e79aff2c89af444dbe818248c45a9ee2690e85fe..f21b661abbb93386eb72b438f9227db6eebf58fc 100644
--- a/pkg/front_end/lib/src/fasta/kernel/builder_accessors.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/builder_accessors.dart
@@ -250,27 +250,33 @@ class ThisAccessor extends BuilderAccessor {
}
Expression buildAssignment(Expression value, {bool voidContext: false}) {
- return internalError("");
+ return buildAssignmentError();
}
Expression buildNullAwareAssignment(Expression value, DartType type,
{bool voidContext: false}) {
- return internalError("");
+ return buildAssignmentError();
}
Expression buildCompoundAssignment(Name binaryOperator, Expression value,
{bool voidContext: false, Procedure interfaceTarget}) {
- return internalError("");
+ return buildAssignmentError();
}
Expression buildPrefixIncrement(Name binaryOperator,
{bool voidContext: false, Procedure interfaceTarget}) {
- return internalError("");
+ return buildAssignmentError();
}
Expression buildPostfixIncrement(Name binaryOperator,
{bool voidContext: false, Procedure interfaceTarget}) {
- return internalError("");
+ return buildAssignmentError();
+ }
+
+ Expression buildAssignmentError() {
+ String message =
+ isSuper ? "Can't assign to 'super'." : "Can't assign to 'this'.";
+ return helper.buildCompileTimeError(message, charOffset);
}
toString() => "ThisAccessor($charOffset${isSuper ? ', super' : ''})";
@@ -364,12 +370,12 @@ class SendAccessor extends IncompleteSend {
Expression buildNullAwareAssignment(Expression value, DartType type,
{bool voidContext: false}) {
- return internalError("");
+ return internalError("Unhandled");
}
Expression buildCompoundAssignment(Name binaryOperator, Expression value,
{bool voidContext: false, Procedure interfaceTarget}) {
- return internalError("");
+ return internalError("Unhandled");
}
Expression buildPrefixIncrement(Name binaryOperator,
« no previous file with comments | « pkg/front_end/lib/src/fasta/kernel/body_builder.dart ('k') | tests/co19/co19-kernel.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698