From 1d83020a0c9f68b4175044cb937dc13b27ec0986 Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Sun, 2 Jan 2011 11:57:54 -0300 Subject: Should fix issue #175, where annotations mysteriously appear to be copied to the methods generated by them. --- src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java') diff --git a/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java b/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java index e3cae373..ea53835a 100644 --- a/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java +++ b/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java @@ -67,6 +67,7 @@ public class EclipsePatcher extends Agent { patchHideGeneratedNodes(sm); patchLiveDebug(sm); patchPostCompileHookEclipse(sm); + patchFixSourceTypeConverter(sm); } else { patchPostCompileHookEcj(sm); } @@ -276,4 +277,15 @@ public class EclipsePatcher extends Agent { PatchDelegate.addPatches(sm, ecj); PatchVal.addPatches(sm, ecj); } + + private static void patchFixSourceTypeConverter(ScriptManager sm) { + final String SOURCE_TYPE_CONVERTER_SIG = "org.eclipse.jdt.internal.compiler.parser.SourceTypeConverter"; + final String I_ANNOTATABLE_SIG = "org.eclipse.jdt.core.IAnnotatable"; + final String ANNOTATION_SIG = "org.eclipse.jdt.internal.compiler.ast.Annotation"; + + sm.addScript(ScriptBuilder.wrapReturnValue() + .target(new MethodTarget(SOURCE_TYPE_CONVERTER_SIG, "convertAnnotations", ANNOTATION_SIG + "[]", I_ANNOTATABLE_SIG)) + .wrapMethod(new Hook("lombok.eclipse.agent.PatchFixes", "convertAnnotations", ANNOTATION_SIG + "[]", ANNOTATION_SIG + "[]", I_ANNOTATABLE_SIG)) + .request(StackRequest.PARAM1, StackRequest.RETURN_VALUE).build()); + } } -- cgit