diff options
author | Reinier Zwitserloot <reinier@zwitserloot.com> | 2012-02-15 04:36:15 +0100 |
---|---|---|
committer | Reinier Zwitserloot <reinier@zwitserloot.com> | 2012-02-15 04:36:15 +0100 |
commit | df5324e2d7f2ce12b691954dd79714ad7496b406 (patch) | |
tree | 9188bd163d99fbb8eeaf1301755ce50514e97438 /src/core/lombok/javac | |
parent | 9a50da2d092f86eef6e00e0f518039ad3ef53ec8 (diff) | |
download | lombok-df5324e2d7f2ce12b691954dd79714ad7496b406.tar.gz lombok-df5324e2d7f2ce12b691954dd79714ad7496b406.tar.bz2 lombok-df5324e2d7f2ce12b691954dd79714ad7496b406.zip |
'val' is no longer legal in basic for loops now. Fixes issue #346
Diffstat (limited to 'src/core/lombok/javac')
-rw-r--r-- | src/core/lombok/javac/handlers/HandleVal.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/core/lombok/javac/handlers/HandleVal.java b/src/core/lombok/javac/handlers/HandleVal.java index 7d4d9004..4feaa3ac 100644 --- a/src/core/lombok/javac/handlers/HandleVal.java +++ b/src/core/lombok/javac/handlers/HandleVal.java @@ -37,6 +37,7 @@ import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.tree.JCTree.JCAnnotation; import com.sun.tools.javac.tree.JCTree.JCEnhancedForLoop; import com.sun.tools.javac.tree.JCTree.JCExpression; +import com.sun.tools.javac.tree.JCTree.JCForLoop; import com.sun.tools.javac.tree.JCTree.JCNewArray; import com.sun.tools.javac.tree.JCTree.JCVariableDecl; import com.sun.tools.javac.util.List; @@ -54,9 +55,14 @@ public class HandleVal extends JavacASTAdapter { if (!typeMatches(val.class, localNode, local.vartype)) return; + JCTree parentRaw = localNode.directUp().get(); + if (parentRaw instanceof JCForLoop) { + localNode.addError("'val' is not allowed in old-style for loops"); + return; + } + JCExpression rhsOfEnhancedForLoop = null; if (local.init == null) { - JCTree parentRaw = localNode.directUp().get(); if (parentRaw instanceof JCEnhancedForLoop) { JCEnhancedForLoop efl = (JCEnhancedForLoop) parentRaw; if (efl.var == local) rhsOfEnhancedForLoop = efl.expr; |