mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 05:10:22 +07:00
do not mix PsiImmediateClassType and PsiReferenceClassType: presentable name for ref type is calc based on reference name only (IDEA-56135)
This commit is contained in:
@@ -399,7 +399,7 @@ public class HighlightClassUtil {
|
||||
|
||||
static HighlightInfo checkExtendsClassAndImplementsInterface(PsiReferenceList referenceList,
|
||||
JavaResolveResult resolveResult,
|
||||
PsiJavaCodeReferenceElement context) {
|
||||
PsiJavaCodeReferenceElement ref) {
|
||||
PsiClass aClass = (PsiClass)referenceList.getParent();
|
||||
boolean isImplements = referenceList.equals(aClass.getImplementsList());
|
||||
boolean isInterface = aClass.isInterface();
|
||||
@@ -409,10 +409,10 @@ public class HighlightClassUtil {
|
||||
PsiClass extendFrom = (PsiClass)resolveResult.getElement();
|
||||
if (extendFrom.isInterface() != mustBeInterface) {
|
||||
errorResult = HighlightInfo.createHighlightInfo(HighlightInfoType.ERROR,
|
||||
context,
|
||||
ref,
|
||||
mustBeInterface ? INTERFACE_EXPECTED : NO_INTERFACE_EXPECTED);
|
||||
PsiClassType type =
|
||||
JavaPsiFacade.getInstance(aClass.getProject()).getElementFactory().createType(extendFrom, resolveResult.getSubstitutor());
|
||||
JavaPsiFacade.getInstance(aClass.getProject()).getElementFactory().createType(ref);
|
||||
QuickFixAction.registerQuickFixAction(errorResult, new ChangeExtendsToImplementsFix(aClass, type));
|
||||
}
|
||||
return errorResult;
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
// "Change 'implements b' to 'extends b'" "true"
|
||||
class a extends b<C.D> {
|
||||
}
|
||||
|
||||
class b<T> {}
|
||||
|
||||
class C {
|
||||
static class D {}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// "Change 'implements b' to 'extends b'" "true"
|
||||
class a implements <caret>b<C.D> {
|
||||
}
|
||||
|
||||
class b<T> {}
|
||||
|
||||
class C {
|
||||
static class D {}
|
||||
}
|
||||
Reference in New Issue
Block a user