diff options
-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); } } |