diff options
author | Reinier Zwitserloot <reinier@tipit.to> | 2009-06-27 03:56:33 +0200 |
---|---|---|
committer | Reinier Zwitserloot <reinier@tipit.to> | 2009-06-27 03:56:33 +0200 |
commit | c4611d669db5ef38ba59540dc850cb59a5168348 (patch) | |
tree | 2dc02fa8e6fed014657e4652b32805c7b36178e2 /src | |
parent | 18931bec5315db308e369a05918af54e59ebd8b6 (diff) | |
download | lombok-c4611d669db5ef38ba59540dc850cb59a5168348.tar.gz lombok-c4611d669db5ef38ba59540dc850cb59a5168348.tar.bz2 lombok-c4611d669db5ef38ba59540dc850cb59a5168348.zip |
[BUGFIX] For some reason, JCLiteral objects contain '1' or '0' (integers) for booleans, not actual booleans. You can tell the difference via the getKind() method. hence, boolean fields in annotations
were throwing unexpected type errors (Integer instead of Boolean). Fixed this.
Diffstat (limited to 'src')
-rw-r--r-- | src/lombok/javac/Javac.java | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lombok/javac/Javac.java b/src/lombok/javac/Javac.java index 801e7a23..90448e26 100644 --- a/src/lombok/javac/Javac.java +++ b/src/lombok/javac/Javac.java @@ -88,7 +88,11 @@ public class Javac { private static Object calculateGuess(JCExpression expr) { if ( expr instanceof JCLiteral ) { - return ((JCLiteral)expr).value; + JCLiteral lit = (JCLiteral)expr; + if ( lit.getKind() == com.sun.source.tree.Tree.Kind.BOOLEAN_LITERAL ) { + return ((Number)lit.value).intValue() == 0 ? false : true; + } + return lit.value; } else if ( expr instanceof JCIdent || expr instanceof JCFieldAccess ) { String x = expr.toString(); if ( x.endsWith(".class") ) x = x.substring(0, x.length() - 6); |