diff --git a/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt b/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt index 5f0aef8951f..3c7be47280f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/cfg/ControlFlowInformationProvider.kt @@ -31,6 +31,7 @@ import org.jetbrains.kotlin.diagnostics.Errors.* import org.jetbrains.kotlin.idea.MainFunctionDetector import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.* +import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject import org.jetbrains.kotlin.resolve.* import org.jetbrains.kotlin.resolve.BindingContext.* import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression @@ -736,7 +737,9 @@ class ControlFlowInformationProvider private constructor( return } !languageVersionSettings.supportsFeature(LanguageFeature.WarningOnMainUnusedParameter) -> { - trace.record(UNUSED_MAIN_PARAMETER, element) + if (owner.containingClassOrObject == null) { + trace.record(UNUSED_MAIN_PARAMETER, element) + } return } } diff --git a/idea/testData/inspectionsLocal/unusedMainParameter/object.kt b/idea/testData/inspectionsLocal/unusedMainParameter/object.kt new file mode 100644 index 00000000000..8593b580d56 --- /dev/null +++ b/idea/testData/inspectionsLocal/unusedMainParameter/object.kt @@ -0,0 +1,7 @@ +// LANGUAGE_VERSION: 1.3 +// WITH_RUNTIME +// PROBLEM: none + +object SomeMain { + @JvmStatic fun main(args: Array) {} +} \ 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 ebc0e96be06..f767641f153 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -8136,6 +8136,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { runTest("idea/testData/inspectionsLocal/unusedMainParameter/legacy.kt"); } + @TestMetadata("object.kt") + public void testObject() throws Exception { + runTest("idea/testData/inspectionsLocal/unusedMainParameter/object.kt"); + } + @TestMetadata("simple.kt") public void testSimple() throws Exception { runTest("idea/testData/inspectionsLocal/unusedMainParameter/simple.kt");