Don't report "main parameter not necessary" in objects #KT-29414 Fixed

This commit is contained in:
Mikhail Glukhikh
2019-02-28 19:25:59 +03:00
parent 022c625d2d
commit 4d19120d84
3 changed files with 16 additions and 1 deletions
@@ -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
}
}
@@ -0,0 +1,7 @@
// LANGUAGE_VERSION: 1.3
// WITH_RUNTIME
// PROBLEM: none
object SomeMain {
@JvmStatic fun main(<caret>args: Array<String>) {}
}
@@ -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");