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

Unified Diff: compiler/java/com/google/dart/compiler/resolver/Resolver.java

Issue 11414264: Triage some co19 tests. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 1 month 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: compiler/java/com/google/dart/compiler/resolver/Resolver.java
diff --git a/compiler/java/com/google/dart/compiler/resolver/Resolver.java b/compiler/java/com/google/dart/compiler/resolver/Resolver.java
index df2b8e6b872315c030c21dec1df4ba0b3166d0c2..588a000633865213835e2aae137c03e0331aafb4 100644
--- a/compiler/java/com/google/dart/compiler/resolver/Resolver.java
+++ b/compiler/java/com/google/dart/compiler/resolver/Resolver.java
@@ -2060,15 +2060,20 @@ public class Resolver {
resolve(node.getArg2());
if (node.getOperator().isAssignmentOperator()) {
switch (ElementKind.of(lhs)) {
- case FIELD:
- case PARAMETER:
- case VARIABLE:
- if (lhs.getModifiers().isFinal()) {
- topLevelContext.onError(node.getArg1(), ResolverErrorCode.CANNOT_ASSIGN_TO_FINAL,
- lhs.getName());
- }
- break;
- case METHOD:
+ case FIELD:
+ case PARAMETER:
+ case VARIABLE:
+ if (lhs.getModifiers().isFinal()) {
+ if (Elements.isFieldOfSameClassAsEnclosingConstructor(lhs, enclosingElement)) {
+ topLevelContext.onError(node.getArg1(),
+ ResolverErrorCode.CANNOT_ASSIGN_TO_FINAL_ERROR, lhs.getName());
+ } else {
+ topLevelContext.onError(node.getArg1(), ResolverErrorCode.CANNOT_ASSIGN_TO_FINAL,
+ lhs.getName());
+ }
+ }
+ break;
+ case METHOD:
if (!lhs.getModifiers().isSetter() && !lhs.getModifiers().isGetter()) {
topLevelContext.onError(node.getArg1(), ResolverErrorCode.CANNOT_ASSIGN_TO_METHOD,
lhs.getName());
@@ -2076,7 +2081,7 @@ public class Resolver {
if (lhs.getModifiers().isSetter()) {
node.setElement(lhs);
}
- break;
+ break;
}
}

Powered by Google App Engine
This is Rietveld 408576698