From acb0e52bc09a66e9a5b5446c374cbc90a732762a Mon Sep 17 00:00:00 2001 From: Roel Spilker Date: Sun, 25 Jul 2010 01:49:58 +0200 Subject: Do not generate @ConstructorProperties for method-local classes --- src/core/lombok/eclipse/handlers/HandleConstructor.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/core/lombok/eclipse/handlers') diff --git a/src/core/lombok/eclipse/handlers/HandleConstructor.java b/src/core/lombok/eclipse/handlers/HandleConstructor.java index 6c857c34..91733839 100644 --- a/src/core/lombok/eclipse/handlers/HandleConstructor.java +++ b/src/core/lombok/eclipse/handlers/HandleConstructor.java @@ -256,13 +256,20 @@ public class HandleConstructor { constructor.statements = nullChecks.isEmpty() ? null : nullChecks.toArray(new Statement[nullChecks.size()]); constructor.arguments = params.isEmpty() ? null : params.toArray(new Argument[params.size()]); - if (!suppressConstructorProperties && level != AccessLevel.PRIVATE) { + if (!suppressConstructorProperties && level != AccessLevel.PRIVATE && !isLocalType(type)) { constructor.annotations = createConstructorProperties(source, constructor.annotations, fields); } return constructor; } + private boolean isLocalType(EclipseNode type) { + Kind kind = type.up().getKind(); + if (kind == Kind.COMPILATION_UNIT) return false; + if (kind == Kind.TYPE) return isLocalType(type.up()); + return true; + } + private MethodDeclaration createStaticConstructor(AccessLevel level, String name, EclipseNode type, Collection fields, ASTNode source) { int pS = source.sourceStart, pE = source.sourceEnd; long p = (long)pS << 32 | pE; -- cgit