aboutsummaryrefslogtreecommitdiff
path: root/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java')
-rw-r--r--src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java12
1 files changed, 12 insertions, 0 deletions
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());
+ }
}