aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/changelog.markdown1
-rw-r--r--src/core/lombok/javac/handlers/HandleConstructor.java3
-rw-r--r--src/delombok/lombok/delombok/CommentPreservingParser.java5
3 files changed, 6 insertions, 3 deletions
diff --git a/doc/changelog.markdown b/doc/changelog.markdown
index 7c5ff02b..27d4608c 100644
--- a/doc/changelog.markdown
+++ b/doc/changelog.markdown
@@ -3,6 +3,7 @@ Lombok Changelog
### v0.9.4 (edge)
* BUGFIX: `@Setter` and `@Getter` can now be applied to static fields again (was broken in v0.9.3 only). [Issue #136](http://code.google.com/p/projectlombok/issues/detail?id=136)
+* BUGFIX: delombok added type parameters to constructors that mirror the type's own type parameters. This resulted in delombok turning any generated constructor that takes at least 1 parameter of type 'T' into something that didn't compile, and to boot, a confusing error message ('T is not compatible with T'). This is now fixed. [Issue #140](http://code.google.com/p/projectlombok/issues/detail?id=140)
### v0.9.3 "Burrowing Whale" (July 25th, 2010)
* FEATURE: Adding `@Getter` or `@Setter` to a class is now legal and is like adding those annotations to every non-static field in it. [Issue #129](http://code.google.com/p/projectlombok/issues/detail?id=129)
diff --git a/src/core/lombok/javac/handlers/HandleConstructor.java b/src/core/lombok/javac/handlers/HandleConstructor.java
index 36deb013..c2332974 100644
--- a/src/core/lombok/javac/handlers/HandleConstructor.java
+++ b/src/core/lombok/javac/handlers/HandleConstructor.java
@@ -175,7 +175,6 @@ public class HandleConstructor {
private JCMethodDecl createConstructor(AccessLevel level, JavacNode typeNode, List<JavacNode> fields, boolean suppressConstructorProperties) {
TreeMaker maker = typeNode.getTreeMaker();
- JCClassDecl type = (JCClassDecl) typeNode.get();
List<JCStatement> nullChecks = List.nil();
List<JCStatement> assigns = List.nil();
@@ -203,7 +202,7 @@ public class HandleConstructor {
}
return maker.MethodDef(mods, typeNode.toName("<init>"),
- null, type.typarams, params, List.<JCExpression>nil(), maker.Block(0L, nullChecks.appendList(assigns)), null);
+ null, List.<JCTypeParameter>nil(), params, List.<JCExpression>nil(), maker.Block(0L, nullChecks.appendList(assigns)), null);
}
private boolean isLocalType(JavacNode type) {
diff --git a/src/delombok/lombok/delombok/CommentPreservingParser.java b/src/delombok/lombok/delombok/CommentPreservingParser.java
index 1cd2e5b1..87c02dcd 100644
--- a/src/delombok/lombok/delombok/CommentPreservingParser.java
+++ b/src/delombok/lombok/delombok/CommentPreservingParser.java
@@ -156,7 +156,10 @@ public class CommentPreservingParser {
}
}
- out.write("// Generated by delombok at " + new Date() + "\n");
+ out.write("// Generated by delombok at ");
+ out.write(String.valueOf(new Date()));
+ out.write(System.getProperty("line.separator"));
+
compilationUnit.accept(new PrettyCommentsPrinter(out, compilationUnit, comments));
}