mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-10 13:17:09 +07:00
extract superclass: update references in jsp imports correctly (IDEA-79706)
This commit is contained in:
+2
-2
@@ -24,10 +24,10 @@ import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.search.searches.ReferencesSearch;
|
||||
import com.intellij.psi.util.InheritanceUtil;
|
||||
import com.intellij.psi.util.MethodSignatureUtil;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.refactoring.RefactoringBundle;
|
||||
import com.intellij.refactoring.turnRefsToSuper.TurnRefsToSuperProcessorBase;
|
||||
import com.intellij.refactoring.util.DocCommentPolicy;
|
||||
import com.intellij.refactoring.util.RefactoringUtil;
|
||||
import com.intellij.refactoring.util.classMembers.MemberInfo;
|
||||
import com.intellij.usageView.UsageInfo;
|
||||
import com.intellij.usageView.UsageViewDescriptor;
|
||||
@@ -112,7 +112,7 @@ public abstract class ExtractSuperBaseProcessor extends TurnRefsToSuperProcessor
|
||||
}
|
||||
for (final PsiReference ref : refs) {
|
||||
final PsiElement element = ref.getElement();
|
||||
if (!canTurnToSuper(element) && PsiTreeUtil.getParentOfType(element, PsiImportStatement.class) == null) {
|
||||
if (!canTurnToSuper(element) && !RefactoringUtil.inImportStatement(ref, element)) {
|
||||
result.add(new BindToOldUsageInfo(element, ref, myClass));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -923,6 +923,24 @@ public class RefactoringUtil {
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean inImportStatement(PsiReference ref, PsiElement element) {
|
||||
if (PsiTreeUtil.getParentOfType(element, PsiImportStatement.class) != null) return true;
|
||||
final PsiFile containingFile = element.getContainingFile();
|
||||
if (containingFile instanceof PsiJavaFile) {
|
||||
final PsiImportList importList = ((PsiJavaFile)containingFile).getImportList();
|
||||
if (importList != null) {
|
||||
final TextRange refRange = ref.getRangeInElement().shiftRight(element.getTextRange().getStartOffset());
|
||||
for (PsiImportStatementBase importStatementBase : importList.getAllImportStatements()) {
|
||||
final TextRange textRange = importStatementBase.getTextRange();
|
||||
if (textRange.contains(refRange)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static interface ImplicitConstructorUsageVisitor {
|
||||
void visitConstructor(PsiMethod constructor, PsiMethod baseConstructor);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user