From 6ac4bf3f176ec741677b2b6def48543610c51855 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 22 Aug 2016 17:41:37 +0300 Subject: [PATCH] No more SOE in UnusedSymbolInspection #KT-13536 Fixed (cherry picked from commit 23961ee) --- .../kotlin/idea/inspections/UnusedSymbolInspection.kt | 6 ++++-- idea/testData/quickfix/removeUnused/importEnumValues.kt | 6 ++++++ .../kotlin/idea/quickfix/QuickFixTestGenerated.java | 6 ++++++ 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 idea/testData/quickfix/removeUnused/importEnumValues.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt index e73beb7f484..798ec4b44f8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt @@ -263,8 +263,10 @@ class UnusedSymbolInspection : AbstractKotlinInspection() { } else { if (import.importedFqName != declaration.fqName) { - val importedDeclaration = import.importedReference?.getQualifiedElementSelector()?.mainReference?.resolve() as? KtNamedDeclaration - return importedDeclaration == null || !hasNonTrivialUsages(importedDeclaration) + val importedDeclaration = + import.importedReference?.getQualifiedElementSelector()?.mainReference?.resolve() as? KtNamedDeclaration + return importedDeclaration == null || + (importedDeclaration != declaration && !hasNonTrivialUsages(importedDeclaration)) } } } diff --git a/idea/testData/quickfix/removeUnused/importEnumValues.kt b/idea/testData/quickfix/removeUnused/importEnumValues.kt new file mode 100644 index 00000000000..04167b7e17d --- /dev/null +++ b/idea/testData/quickfix/removeUnused/importEnumValues.kt @@ -0,0 +1,6 @@ +// "Safe delete 'MyEnum'" "false" +// ACTION: Create test + +import MyEnum.values + +enum class MyEnum \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index ebfdb03d62f..8e492ab0e59 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -6928,6 +6928,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest(fileName); } + @TestMetadata("importEnumValues.kt") + public void testImportEnumValues() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/removeUnused/importEnumValues.kt"); + doTest(fileName); + } + @TestMetadata("notTriangle.kt") public void testNotTriangle() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/quickfix/removeUnused/notTriangle.kt");