diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt index d44a119e619..3f14ab7062a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt @@ -198,6 +198,7 @@ class UnusedSymbolInspection : AbstractKotlinInspection() { // Simple PSI-based checks if (declaration is KtObjectDeclaration && declaration.isCompanion()) return // never mark companion object as unused (there are too many reasons it can be needed for) + if (declaration is KtSecondaryConstructor && declaration.containingClass()?.isEnum() == true) return if (declaration.hasModifier(KtTokens.OVERRIDE_KEYWORD)) return if (declaration is KtProperty && declaration.isLocal) return if (declaration is KtParameter && (declaration.getParent().parent !is KtPrimaryConstructor || !declaration.hasValOrVar())) return diff --git a/idea/testData/inspectionsLocal/unusedSymbol/enumSecondaryConstructor.kt b/idea/testData/inspectionsLocal/unusedSymbol/enumSecondaryConstructor.kt new file mode 100644 index 00000000000..7d29fad2a50 --- /dev/null +++ b/idea/testData/inspectionsLocal/unusedSymbol/enumSecondaryConstructor.kt @@ -0,0 +1,12 @@ +// PROBLEM: none +enum class MyEnum(val i: Int) { + HELLO(42), + WORLD("42") + ; + + constructor(s: String): this(42) +} + +fun test() { + MyEnum.HELLO +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index 7689dc101da..e86dde6672b 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -8673,6 +8673,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { runTest("idea/testData/inspectionsLocal/unusedSymbol/dataInlineClassDeclaration.kt"); } + @TestMetadata("enumSecondaryConstructor.kt") + public void testEnumSecondaryConstructor() throws Exception { + runTest("idea/testData/inspectionsLocal/unusedSymbol/enumSecondaryConstructor.kt"); + } + @TestMetadata("functionWithInlineClass.kt") public void testFunctionWithInlineClass() throws Exception { runTest("idea/testData/inspectionsLocal/unusedSymbol/functionWithInlineClass.kt");