diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt index f92ac9fb866..1cbee1058f6 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/UnusedSymbolInspection.kt @@ -327,11 +327,10 @@ class UnusedSymbolInspection : AbstractKotlinInspection() { private fun KtCallableDeclaration.canBeHandledByLightMethods(descriptor: DeclarationDescriptor?): Boolean { return when { hasModifier(KtTokens.INTERNAL_KEYWORD) -> false - this !is KtNamedFunction -> true descriptor !is FunctionDescriptor -> true + descriptor is ConstructorDescriptor -> !descriptor.constructedClass.isInline else -> !descriptor.hasInlineClassParameters() } - } private fun FunctionDescriptor.hasInlineClassParameters(): Boolean { diff --git a/idea/testData/inspectionsLocal/unusedSymbol/inlineClassConstructor.kt b/idea/testData/inspectionsLocal/unusedSymbol/inlineClassConstructor.kt new file mode 100644 index 00000000000..4605f9f0dd4 --- /dev/null +++ b/idea/testData/inspectionsLocal/unusedSymbol/inlineClassConstructor.kt @@ -0,0 +1,7 @@ +// PROBLEM: none + +inline class InlineClass(val x: Int) { + constructor() : this(42) +} + +val call = InlineClass() \ 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 346d8d31dd5..a055bbf5613 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -6613,6 +6613,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { runTest("idea/testData/inspectionsLocal/unusedSymbol/inAnonymousRunWrapped.kt"); } + @TestMetadata("inlineClassConstructor.kt") + public void testInlineClassConstructor() throws Exception { + runTest("idea/testData/inspectionsLocal/unusedSymbol/inlineClassConstructor.kt"); + } + @TestMetadata("inlineClassMemberFunction.kt") public void testInlineClassMemberFunction() throws Exception { runTest("idea/testData/inspectionsLocal/unusedSymbol/inlineClassMemberFunction.kt");