From b476825fc723d10098a11baa61876f4d23eb4c45 Mon Sep 17 00:00:00 2001 From: jvanderhel Date: Thu, 8 Dec 2011 20:41:02 +0100 Subject: Fix for issue 308: Allows organize imports works with @Delegate Also fixes errors in eclipse-log when using @Delegate. --- src/eclipseAgent/lombok/eclipse/agent/PatchDelegate.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/eclipseAgent') diff --git a/src/eclipseAgent/lombok/eclipse/agent/PatchDelegate.java b/src/eclipseAgent/lombok/eclipse/agent/PatchDelegate.java index cc72c206..961d80d7 100644 --- a/src/eclipseAgent/lombok/eclipse/agent/PatchDelegate.java +++ b/src/eclipseAgent/lombok/eclipse/agent/PatchDelegate.java @@ -38,6 +38,7 @@ import lombok.core.AST.Kind; import lombok.eclipse.EclipseAST; import lombok.eclipse.EclipseNode; import lombok.eclipse.TransformEclipseAST; +import lombok.eclipse.handlers.SetGeneratedByVisitor; import org.eclipse.jdt.internal.compiler.CompilationResult; import org.eclipse.jdt.internal.compiler.ast.ASTNode; @@ -324,7 +325,11 @@ public class PatchDelegate { for (BindingTuple pair : methods) { EclipseNode annNode = typeNode.getAst().get(pair.responsible); MethodDeclaration method = createDelegateMethod(pair.fieldName, typeNode, pair, top.compilationResult, annNode); - if (method != null) injectMethod(typeNode, method); + if (method != null) { + SetGeneratedByVisitor visitor = new SetGeneratedByVisitor(annNode.get()); + method.traverse(visitor, ((TypeDeclaration)typeNode.get()).scope); + injectMethod(typeNode, method); + } } } -- cgit From 71c48fb991c657aaa30b805bc0e10e5bd00bec3b Mon Sep 17 00:00:00 2001 From: jvanderhel Date: Tue, 13 Dec 2011 00:32:48 +0100 Subject: Fix for Issue 315: HandleLogger now sets all its sourcepositions and generatedBy's. convertToFieldDeclaration now als marks the resulting FieldDeclaration as isGenerated --- src/core/lombok/eclipse/handlers/HandleLog.java | 4 +++- src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'src/eclipseAgent') diff --git a/src/core/lombok/eclipse/handlers/HandleLog.java b/src/core/lombok/eclipse/handlers/HandleLog.java index b37d4f27..0abac2fe 100644 --- a/src/core/lombok/eclipse/handlers/HandleLog.java +++ b/src/core/lombok/eclipse/handlers/HandleLog.java @@ -71,7 +71,9 @@ public class HandleLog { ClassLiteralAccess loggingType = selfType(owner, source); - injectField(owner, createField(framework, source, loggingType)); + FieldDeclaration fieldDeclaration = createField(framework, source, loggingType); + fieldDeclaration.traverse(new SetGeneratedByVisitor(source), typeDecl.staticInitializerScope); + injectField(owner, fieldDeclaration); owner.rebuild(); break; default: diff --git a/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java b/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java index 25f7d7ce..1a3828c1 100644 --- a/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java +++ b/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java @@ -310,6 +310,13 @@ public class EclipsePatcher extends Agent { .wrapMethod(new Hook("lombok.eclipse.agent.PatchFixes", "setIsGeneratedFlag", "void", "org.eclipse.jdt.core.dom.ASTNode", "org.eclipse.jdt.internal.compiler.ast.ASTNode")) .transplant().build()); + + sm.addScript(ScriptBuilder.wrapReturnValue() + .target(new MethodTarget("org.eclipse.jdt.core.dom.ASTConverter", "convertToFieldDeclaration", "org.eclipse.jdt.core.dom.FieldDeclaration", "org.eclipse.jdt.internal.compiler.ast.FieldDeclaration")) + .request(StackRequest.PARAM1, StackRequest.RETURN_VALUE) + .wrapMethod(new Hook("lombok.eclipse.agent.PatchFixes", "setIsGeneratedFlag", "void", + "org.eclipse.jdt.core.dom.ASTNode", "org.eclipse.jdt.internal.compiler.ast.ASTNode")) + .transplant().build()); sm.addScript(ScriptBuilder.wrapMethodCall() .target(new TargetMatcher() { -- cgit