diff options
| author | Reinier Zwitserloot <reinier@zwitserloot.com> | 2010-11-08 15:30:51 +0100 |
|---|---|---|
| committer | Reinier Zwitserloot <reinier@zwitserloot.com> | 2010-11-08 15:30:51 +0100 |
| commit | 09cebbdc59c118bb31f7e2fdf328ed60a03385c7 (patch) | |
| tree | af0e173aea91e42eda95c4f88d4054517f7fe9f9 /src/core/lombok/javac/handlers | |
| parent | 2f202525afae8d43b54d2160a6ef924c3d1d5d91 (diff) | |
| download | lombok-09cebbdc59c118bb31f7e2fdf328ed60a03385c7.tar.gz lombok-09cebbdc59c118bb31f7e2fdf328ed60a03385c7.tar.bz2 lombok-09cebbdc59c118bb31f7e2fdf328ed60a03385c7.zip | |
'val' in javac now errors out with an appropriate message on val x = { .. }, and arrays no longer cause "Symbol not found: Array" errors.
Diffstat (limited to 'src/core/lombok/javac/handlers')
| -rw-r--r-- | src/core/lombok/javac/handlers/HandleVal.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/core/lombok/javac/handlers/HandleVal.java b/src/core/lombok/javac/handlers/HandleVal.java index a6f22093..f806ae6c 100644 --- a/src/core/lombok/javac/handlers/HandleVal.java +++ b/src/core/lombok/javac/handlers/HandleVal.java @@ -33,6 +33,7 @@ import com.sun.tools.javac.code.Type; import com.sun.tools.javac.tree.JCTree; import com.sun.tools.javac.tree.JCTree.JCEnhancedForLoop; import com.sun.tools.javac.tree.JCTree.JCExpression; +import com.sun.tools.javac.tree.JCTree.JCNewArray; import com.sun.tools.javac.tree.JCTree.JCVariableDecl; @ProviderFor(JavacASTVisitor.class) @@ -57,6 +58,11 @@ public class HandleVal extends JavacASTAdapter { return; } + if (local.init instanceof JCNewArray && ((JCNewArray)local.init).elemtype == null) { + localNode.addError("'val' is not compatible with array initializer expressions. Use the full form (new int[] { ... } instead of just { ... })"); + return; + } + local.mods.flags |= Flags.FINAL; JCExpression oldVarType = local.vartype; local.vartype = JavacResolution.createJavaLangObject(localNode.getTreeMaker(), localNode.getAst()); |
