From 92b0210e9f35b3af6579ece60fd1677ba45ba4d1 Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 10 Nov 2010 15:22:38 +0300 Subject: [PATCH] do not mix PsiImmediateClassType and PsiReferenceClassType: presentable name for ref type is calc based on reference name only (IDEA-56135) --- .../daemon/impl/analysis/HighlightClassUtil.java | 6 +++--- .../quickFix/changeExtendsToImplements/after7.java | 9 +++++++++ .../quickFix/changeExtendsToImplements/before7.java | 9 +++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/changeExtendsToImplements/after7.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/changeExtendsToImplements/before7.java diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java index e9da4dfba81a..2a7c843c2ae3 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java @@ -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; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/changeExtendsToImplements/after7.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/changeExtendsToImplements/after7.java new file mode 100644 index 000000000000..82c28405a968 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/changeExtendsToImplements/after7.java @@ -0,0 +1,9 @@ +// "Change 'implements b' to 'extends b'" "true" +class a extends b { +} + +class b {} + +class C { + static class D {} +} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/changeExtendsToImplements/before7.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/changeExtendsToImplements/before7.java new file mode 100644 index 000000000000..7c7a75fc8ef8 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/changeExtendsToImplements/before7.java @@ -0,0 +1,9 @@ +// "Change 'implements b' to 'extends b'" "true" +class a implements b { +} + +class b {} + +class C { + static class D {} +}