mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
allow change signature propagation to the containing method (IDEA-201205)
This commit is contained in:
+2
-2
@@ -281,7 +281,7 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr
|
||||
}
|
||||
}
|
||||
|
||||
final PsiMethod caller = RefactoringUtil.getEnclosingMethod(ref);
|
||||
final PsiMethod caller = PsiTreeUtil.getParentOfType(ref, PsiMethod.class);
|
||||
if (toChangeArguments) {
|
||||
final PsiExpressionList list = RefactoringUtil.getArgumentListByMethodReference(ref);
|
||||
LOG.assertTrue(list != null);
|
||||
@@ -654,7 +654,7 @@ public class JavaChangeSignatureUsageProcessor implements ChangeSignatureUsagePr
|
||||
if (methodCallUsageInfo.isToChangeArguments()){
|
||||
final PsiElement element = methodCallUsageInfo.getElement();
|
||||
if (element == null) continue;
|
||||
final PsiMethod caller = RefactoringUtil.getEnclosingMethod(element);
|
||||
final PsiMethod caller = PsiTreeUtil.getParentOfType(element, PsiMethod.class);
|
||||
final boolean needDefaultValue = needDefaultValue(changeInfo, caller);
|
||||
if (needDefaultValue && (caller == null || !MethodSignatureUtil.isSuperMethod(methodCallUsageInfo.getReferencedMethod(), caller))) {
|
||||
final ParameterInfo[] parameters = changeInfo.getNewParameters();
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
class ChangeSignatureTest {
|
||||
private static void level1() {
|
||||
Runnable runnable = () -> level2();
|
||||
Runnable runnable1 = () -> { level2();};
|
||||
level2();
|
||||
}
|
||||
|
||||
private static void le<caret>vel2() {
|
||||
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
class ChangeSignatureTest {
|
||||
private static void level1(Class clazz) {
|
||||
Runnable runnable = () -> level2(clazz);
|
||||
Runnable runnable1 = () -> { level2(clazz);};
|
||||
level2(clazz);
|
||||
}
|
||||
|
||||
private static void level2(Class clazz) {
|
||||
|
||||
}
|
||||
}
|
||||
+4
@@ -48,6 +48,10 @@ public class ChangeSignaturePropagationTest extends LightRefactoringTestCase {
|
||||
parameterPropagationTest();
|
||||
}
|
||||
|
||||
public void testParamWithLambda() {
|
||||
parameterPropagationTest();
|
||||
}
|
||||
|
||||
public void testParamTypeSubst() {
|
||||
final PsiMethod method = getPrimaryMethod();
|
||||
final HashSet<PsiMethod> methods = new HashSet<>();
|
||||
|
||||
+1
-1
@@ -129,7 +129,7 @@ public class GrChangeSignatureUsageProcessor implements ChangeSignatureUsageProc
|
||||
if (methodCallUsageInfo.isToChangeArguments()){
|
||||
final PsiElement element = methodCallUsageInfo.getElement();
|
||||
if (element == null) continue;
|
||||
final PsiMethod caller = RefactoringUtil.getEnclosingMethod(element);
|
||||
final PsiMethod caller = PsiTreeUtil.getParentOfType(element, PsiMethod.class);
|
||||
final boolean needDefaultValue = !((JavaChangeInfo)changeInfo).getMethodsToPropagateParameters().contains(caller);
|
||||
final PsiMethod referencedMethod = methodCallUsageInfo.getReferencedMethod();
|
||||
if (needDefaultValue &&
|
||||
|
||||
Reference in New Issue
Block a user