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()); +	}  } | 
