diff options
author | Reinier Zwitserloot <reinier@zwitserloot.com> | 2010-07-21 23:05:28 +0200 |
---|---|---|
committer | Reinier Zwitserloot <reinier@zwitserloot.com> | 2010-07-21 23:05:28 +0200 |
commit | 1a9f8f168aa17f77c6e27d0a740b5f7614fb5c90 (patch) | |
tree | 80fdd22607123c6453828f479a5e3fd0a291093c | |
parent | 91bb3455da2913c81745d2a7f7e5b42839964f58 (diff) | |
download | lombok-1a9f8f168aa17f77c6e27d0a740b5f7614fb5c90.tar.gz lombok-1a9f8f168aa17f77c6e27d0a740b5f7614fb5c90.tar.bz2 lombok-1a9f8f168aa17f77c6e27d0a740b5f7614fb5c90.zip |
delombok on most javacs would quit with a NoSuchFieldError if it contains <?> style wildcards anywhere in the source. No longer.
Fixes issue #134.
-rw-r--r-- | doc/changelog.markdown | 4 | ||||
-rw-r--r-- | src/delombok/lombok/delombok/PrettyCommentsPrinter.java | 11 |
2 files changed, 14 insertions, 1 deletions
diff --git a/doc/changelog.markdown b/doc/changelog.markdown index e2425717..f1017790 100644 --- a/doc/changelog.markdown +++ b/doc/changelog.markdown @@ -18,6 +18,10 @@ Lombok Changelog * BUGFIX: While its discouraged, `import lombok.*;` is supposed to work in the vast majority of cases. In eclipse, however, it didn't. Now it does. [Issue #102](http://code.google.com/p/projectlombok/issues/detail?id=102) * BUGFIX: When `@Getter` or `@Setter` is applied to a multiple field declaration, such as `@Getter int x, y;`, the annotation now applies to all fields, not just the first. [Issue #54](http://code.google.com/p/projectlombok/issues/detail?id=54) * ENHANCEMENT: generated `toString`, `equals` and `hashCode` methods will now use `this.getX()` and `other.getX()` instead of `this.x` and `other.x` if a suitable getter is available. This behaviour is useful for proxied classes, such as the POJOs that hibernate makes. Usage of the getters can be suppressed with `@ToString/@EqualsAndHashCode(doNotUseGetters = true)`. [Issue #110](http://code.google.com/p/projectlombok/issues/detail?id=110) +* BUGFIX: delombok on most javacs would quit with a NoSuchFieldError if it contains <?> style wildcards anywhere in the source, as well as at least 1 lombok annotation. No longer. [Issue #134](http://code.google.com/p/projectlombok/issues/detail?id=134) + +Fixes issue #134. + ### v0.9.2 "Hailbunny" (December 15th, 2009) * preliminary support for lombok on NetBeans! - thanks go to Jan Lahoda from NetBeans. [Issue #20](http://code.google.com/p/projectlombok/issues/detail?id=20) diff --git a/src/delombok/lombok/delombok/PrettyCommentsPrinter.java b/src/delombok/lombok/delombok/PrettyCommentsPrinter.java index a7c79f46..c96d2802 100644 --- a/src/delombok/lombok/delombok/PrettyCommentsPrinter.java +++ b/src/delombok/lombok/delombok/PrettyCommentsPrinter.java @@ -42,6 +42,7 @@ import lombok.delombok.Comment.EndConnection; import lombok.delombok.Comment.StartConnection; import com.sun.source.tree.Tree; +import com.sun.tools.javac.code.BoundKind; import com.sun.tools.javac.code.Flags; import com.sun.tools.javac.code.Symbol; import com.sun.tools.javac.code.TypeTags; @@ -1386,12 +1387,20 @@ public class PrettyCommentsPrinter extends JCTree.Visitor { @Override public void visitWildcard(JCWildcard tree) { try { - print(tree.kind); + Object kind = tree.getClass().getField("kind").get(tree); + print(kind); + if (kind != null && kind.getClass().getSimpleName().equals("TypeBoundKind")) { + kind = kind.getClass().getField("kind").get(kind); + } if (tree.getKind() != Tree.Kind.UNBOUNDED_WILDCARD) printExpr(tree.inner); } catch (IOException e) { throw new UncheckedIOException(e); + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); } } |