aboutsummaryrefslogtreecommitdiff
path: root/src/core/lombok/eclipse/handlers
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@zwitserloot.com>2010-11-08 22:32:22 +0100
committerReinier Zwitserloot <reinier@zwitserloot.com>2010-11-08 22:52:07 +0100
commitcc60afa1eb4b14998e72c4fd5adf9def32e0e0f8 (patch)
treecae9a00aa7e5f8cfa08adfe22f3da98c5e0fcb4a /src/core/lombok/eclipse/handlers
parentdee834a39780f61a0357c42f61592cd3c3598bd3 (diff)
downloadlombok-cc60afa1eb4b14998e72c4fd5adf9def32e0e0f8.tar.gz
lombok-cc60afa1eb4b14998e72c4fd5adf9def32e0e0f8.tar.bz2
lombok-cc60afa1eb4b14998e72c4fd5adf9def32e0e0f8.zip
'val' now also works in foreach loops, on both javac and ecj / eclipse.
Diffstat (limited to 'src/core/lombok/eclipse/handlers')
-rw-r--r--src/core/lombok/eclipse/handlers/HandleVal.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/core/lombok/eclipse/handlers/HandleVal.java b/src/core/lombok/eclipse/handlers/HandleVal.java
index 6fa39b10..b3cfa879 100644
--- a/src/core/lombok/eclipse/handlers/HandleVal.java
+++ b/src/core/lombok/eclipse/handlers/HandleVal.java
@@ -26,6 +26,7 @@ import lombok.eclipse.EclipseASTVisitor;
import lombok.eclipse.EclipseNode;
import org.eclipse.jdt.internal.compiler.ast.ArrayInitializer;
+import org.eclipse.jdt.internal.compiler.ast.ForeachStatement;
import org.eclipse.jdt.internal.compiler.ast.LocalDeclaration;
import org.eclipse.jdt.internal.compiler.ast.SingleTypeReference;
import org.mangosdk.spi.ProviderFor;
@@ -41,7 +42,14 @@ public class HandleVal extends EclipseASTAdapter {
if (token == null || token.length != 3) return;
else if (token[0] != 'v' || token[1] != 'a' || token[2] != 'l') return;
- if (local.initialization == null) {
+ boolean variableOfForEach = false;
+
+ if (localNode.directUp().get() instanceof ForeachStatement) {
+ ForeachStatement fs = (ForeachStatement) localNode.directUp().get();
+ variableOfForEach = fs.elementVariable == local;
+ }
+
+ if (local.initialization == null && !variableOfForEach) {
localNode.addError("'val' on a local variable requires an initializer expression");
}