mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-09 08:09:39 +07:00
push down: decode references once with respect to other moved members (IDEA-149639)
This commit is contained in:
@@ -17,7 +17,6 @@ package com.intellij.refactoring.memberPushDown;
|
||||
|
||||
import com.intellij.codeInsight.AnnotationUtil;
|
||||
import com.intellij.codeInsight.ChangeContextUtil;
|
||||
import com.intellij.codeInsight.generation.OverrideImplementExploreUtil;
|
||||
import com.intellij.codeInsight.generation.OverrideImplementUtil;
|
||||
import com.intellij.codeInsight.intention.impl.CreateClassDialog;
|
||||
import com.intellij.codeInsight.intention.impl.CreateSubclassAction;
|
||||
@@ -319,13 +318,6 @@ public class PushDownProcessor extends BaseRefactoringProcessor {
|
||||
}
|
||||
|
||||
private void decodeRefs(final PsiMember member, final PsiClass targetClass) {
|
||||
try {
|
||||
ChangeContextUtil.decodeContextInfo(member, null, null);
|
||||
}
|
||||
catch (IncorrectOperationException e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
|
||||
final PsiElementFactory factory = JavaPsiFacade.getInstance(myProject).getElementFactory();
|
||||
member.accept(new JavaRecursiveElementWalkingVisitor() {
|
||||
@Override public void visitReferenceExpression(PsiReferenceExpression expression) {
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
import static InlineIssue.ClassToMove.F1;
|
||||
abstract class InlineIssue {
|
||||
public enum ClassToMove { F1 }
|
||||
|
||||
public InlineIssue cre<caret>ate(ClassToMove e) {
|
||||
F1.notify();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
class Desc extends InlineIssue {
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import static Desc.ClassToMove.F1;
|
||||
abstract class InlineIssue {
|
||||
|
||||
}
|
||||
|
||||
class Desc extends InlineIssue {
|
||||
public InlineIssue create(ClassToMove e) {
|
||||
F1.notify();
|
||||
return null;
|
||||
}
|
||||
|
||||
public enum ClassToMove { F1 }
|
||||
}
|
||||
@@ -63,6 +63,8 @@ public class PushDownTest extends LightRefactoringTestCase {
|
||||
|
||||
public void testInterfaceConstants() { doTest();}
|
||||
|
||||
public void testReferenceForMovedInnerClass() { doTest();}
|
||||
|
||||
public void testInsertOverrideWhenKeepAbstract() throws Exception {
|
||||
doTestImplements(true);
|
||||
}
|
||||
@@ -92,6 +94,13 @@ public class PushDownTest extends LightRefactoringTestCase {
|
||||
membersToMove.add(memberInfo);
|
||||
}
|
||||
|
||||
final PsiClass classByName = currentClass.findInnerClassByName("ClassToMove", false);
|
||||
if (classByName != null) {
|
||||
final MemberInfo memberInfo = new MemberInfo(classByName);
|
||||
memberInfo.setChecked(true);
|
||||
membersToMove.add(memberInfo);
|
||||
}
|
||||
|
||||
final MemberInfo memberInfo = new MemberInfo(psiMember);
|
||||
memberInfo.setChecked(true);
|
||||
membersToMove.add(memberInfo);
|
||||
|
||||
Reference in New Issue
Block a user