diff options
Diffstat (limited to 'src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java')
-rw-r--r-- | src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java | 12 |
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()); + } } |