From a0adfd6ccab51591e60b8deed193d92e14882d28 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Fri, 21 Nov 2014 14:33:16 +0100 Subject: [PATCH] IDEA-133279 (IntelliJ complains about a qualified type name when it appears in the type parameters of the declaring type) --- ...UnnecessarilyQualifiedInnerClassAccessInspection.java | 5 ++--- .../NoImports.java | 9 +++++++++ ...cessarilyQualifiedInnerClassAccessInspectionTest.java | 9 ++++++++- 3 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_inner_class_access/NoImports.java diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedInnerClassAccessInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedInnerClassAccessInspection.java index e449ad98fc8f..f760c1460306 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedInnerClassAccessInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnnecessarilyQualifiedInnerClassAccessInspection.java @@ -156,9 +156,8 @@ public class UnnecessarilyQualifiedInnerClassAccessInspection extends BaseInspec if (referenceClass == null) { return; } - if (!referenceClass.equals(qualifierTarget) || - PsiTreeUtil.isAncestor(referenceClass.getModifierList(), - reference, true)) { + final PsiElement brace = referenceClass.getLBrace(); + if (!referenceClass.equals(qualifierTarget) || brace != null && brace.getTextOffset() > reference.getTextOffset()) { if (ignoreReferencesNeedingImport && (PsiTreeUtil.isAncestor(referenceClass, qualifierTarget, true) || diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_inner_class_access/NoImports.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_inner_class_access/NoImports.java new file mode 100644 index 000000000000..dc9200b0734d --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unnecessarily_qualified_inner_class_access/NoImports.java @@ -0,0 +1,9 @@ +import java.util.List; +import java.util.Map; + +abstract class NoImports implements List { + Map.Entry entry; + NoImports.A a; + + class A {} +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/UnnecessarilyQualifiedInnerClassAccessInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/UnnecessarilyQualifiedInnerClassAccessInspectionTest.java index 9b1b5bfaa55e..d54a25e25f4c 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/UnnecessarilyQualifiedInnerClassAccessInspectionTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/style/UnnecessarilyQualifiedInnerClassAccessInspectionTest.java @@ -6,7 +6,14 @@ import org.jetbrains.annotations.Nullable; public class UnnecessarilyQualifiedInnerClassAccessInspectionTest extends LightInspectionTestCase { - public void testTest() throws Exception { + public void testTest() { + doTest(); + } + + public void testNoImports() { + final UnnecessarilyQualifiedInnerClassAccessInspection inspection = new UnnecessarilyQualifiedInnerClassAccessInspection(); + inspection.ignoreReferencesNeedingImport = true; + myFixture.enableInspections(inspection); doTest(); }