mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
make method static: do not pass class param for static inner class (IDEA-90720)
This commit is contained in:
@@ -108,7 +108,7 @@ public class MakeStaticUtil {
|
||||
PsiElement refElement = classReference.resolve();
|
||||
if (refElement instanceof PsiClass) {
|
||||
PsiClass hisClass = ((PsiClass) refElement).getContainingClass();
|
||||
if (hisClass != originalMember && isPartOf(hisClass, containingClass)) {
|
||||
if (hisClass != originalMember && isPartOf(hisClass, containingClass) && !((PsiClass)refElement).hasModifierProperty(PsiModifier.STATIC)) {
|
||||
classRefs.add(new InternalUsageInfo(element, refElement));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
class C {
|
||||
private void f<caret>oo() {
|
||||
Bar bar = new Bar();
|
||||
}
|
||||
|
||||
static class Bar {}
|
||||
}
|
||||
@@ -19,6 +19,7 @@ import com.intellij.JavaTestUtil;
|
||||
import com.intellij.codeInsight.TargetElementUtilBase;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.PsiTypeParameterListOwner;
|
||||
import com.intellij.refactoring.makeStatic.MakeMethodStaticProcessor;
|
||||
import com.intellij.refactoring.makeStatic.MakeStaticUtil;
|
||||
import com.intellij.refactoring.makeStatic.Settings;
|
||||
@@ -176,6 +177,13 @@ public class MakeMethodStaticTest extends LightRefactoringTestCase {
|
||||
configureByFile("/refactoring/makeMethodStatic/beforePreserveTypeParams.java");
|
||||
performWithFields();
|
||||
checkResultByFile("/refactoring/makeMethodStatic/afterPreserveTypeParams.java");
|
||||
}
|
||||
|
||||
public void testInnerStaticClassUsed() throws Exception {
|
||||
configureByFile("/refactoring/makeMethodStatic/beforeInnerStaticClassUsed.java");
|
||||
PsiElement element = TargetElementUtilBase.findTargetElement(myEditor, TargetElementUtilBase.ELEMENT_NAME_ACCEPTED);
|
||||
assertTrue(element instanceof PsiMethod);
|
||||
assertFalse(MakeStaticUtil.isParameterNeeded((PsiMethod)element));
|
||||
}
|
||||
|
||||
public void testPreserveParametersAlignment() throws Exception {
|
||||
|
||||
Reference in New Issue
Block a user