mirror of
https://github.com/tiennm99/lombok.git
synced 2026-10-13 10:15:53 +00:00
[fixes #3134] Search patched method also by parameters
This commit is contained in:
1 parent
8c3ff7e9b0
commit
017df4c72a
2 files changed
+24
-1
No files matched your search
@@ -332,12 +332,18 @@ public class EclipsePatcher implements AgentLauncher.AgentLaunchable {
|
||||
|
||||
private static void patchHideGeneratedNodes(ScriptManager sm) {
|
||||
sm.addScriptIfWitness(OSGI_TYPES, ScriptBuilder.wrapReturnValue()
|
||||
.target(new MethodTarget("org.eclipse.jdt.internal.corext.dom.LinkedNodeFinder", "findByNode"))
|
||||
.target(new MethodTarget("org.eclipse.jdt.internal.corext.dom.LinkedNodeFinder", "findByNode", "org.eclipse.jdt.core.dom.SimpleName[]", "org.eclipse.jdt.core.dom.ASTNode", "org.eclipse.jdt.core.dom.SimpleName"))
|
||||
.target(new MethodTarget("org.eclipse.jdt.internal.corext.dom.LinkedNodeFinder", "findByBinding"))
|
||||
.wrapMethod(new Hook("lombok.launch.PatchFixesHider$PatchFixes", "removeGeneratedSimpleNames", "org.eclipse.jdt.core.dom.SimpleName[]",
|
||||
"org.eclipse.jdt.core.dom.SimpleName[]"))
|
||||
.request(StackRequest.RETURN_VALUE).build());
|
||||
|
||||
sm.addScriptIfWitness(OSGI_TYPES, ScriptBuilder.wrapReturnValue()
|
||||
.target(new MethodTarget("org.eclipse.jdt.internal.corext.dom.LinkedNodeFinder", "findByNode", "org.eclipse.jdt.core.dom.Name[]", "org.eclipse.jdt.core.dom.ASTNode", "org.eclipse.jdt.core.dom.Name"))
|
||||
.wrapMethod(new Hook("lombok.launch.PatchFixesHider$PatchFixes", "removeGeneratedNames", "org.eclipse.jdt.core.dom.Name[]",
|
||||
"org.eclipse.jdt.core.dom.Name[]"))
|
||||
.request(StackRequest.RETURN_VALUE).build());
|
||||
|
||||
sm.addScriptIfWitness(OSGI_TYPES, ScriptBuilder.exitEarly()
|
||||
.target(new MethodTarget("org.eclipse.jdt.core.dom.ASTNode", "accept", "void", "org.eclipse.jdt.core.dom.ASTVisitor"))
|
||||
.decisionMethod(new Hook("lombok.launch.PatchFixesHider$PatchFixes", "isBlockedVisitorAndGenerated", "boolean", "org.eclipse.jdt.core.dom.ASTNode", "org.eclipse.jdt.core.dom.ASTVisitor"))
|
||||
|
||||
@@ -39,6 +39,7 @@ import org.eclipse.jdt.core.IJavaElement;
|
||||
import org.eclipse.jdt.core.IMethod;
|
||||
import org.eclipse.jdt.core.IType;
|
||||
import org.eclipse.jdt.core.JavaModelException;
|
||||
import org.eclipse.jdt.core.dom.Name;
|
||||
import org.eclipse.jdt.core.dom.SimpleName;
|
||||
import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
|
||||
import org.eclipse.jdt.core.dom.Type;
|
||||
@@ -780,6 +781,22 @@ final class PatchFixesHider {
|
||||
return newSimpleNames;
|
||||
}
|
||||
|
||||
public static Name[] removeGeneratedNames(Name[] in) throws Exception {
|
||||
Field f = Name.class.getField("$isGenerated");
|
||||
|
||||
int count = 0;
|
||||
for (int i = 0; i < in.length; i++) {
|
||||
if (in[i] == null || !((Boolean)f.get(in[i])).booleanValue()) count++;
|
||||
}
|
||||
if (count == in.length) return in;
|
||||
Name[] newNames = new Name[count];
|
||||
count = 0;
|
||||
for (int i = 0; i < in.length; i++) {
|
||||
if (in[i] == null || !((Boolean)f.get(in[i])).booleanValue()) newNames[count++] = in[i];
|
||||
}
|
||||
return newNames;
|
||||
}
|
||||
|
||||
public static Annotation[] convertAnnotations(Annotation[] out, IAnnotatable annotatable) {
|
||||
IAnnotation[] in;
|
||||
|
||||
|
||||
Reference in new issue
Block a user