Don't report "main parameter not necessary" in objects #KT-29414 Fixed
This commit is contained in:
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.diagnostics.Errors.*
|
|||||||
import org.jetbrains.kotlin.idea.MainFunctionDetector
|
import org.jetbrains.kotlin.idea.MainFunctionDetector
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
|
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
||||||
import org.jetbrains.kotlin.resolve.*
|
import org.jetbrains.kotlin.resolve.*
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext.*
|
import org.jetbrains.kotlin.resolve.BindingContext.*
|
||||||
import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression
|
import org.jetbrains.kotlin.resolve.bindingContextUtil.isUsedAsExpression
|
||||||
@@ -736,7 +737,9 @@ class ControlFlowInformationProvider private constructor(
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
!languageVersionSettings.supportsFeature(LanguageFeature.WarningOnMainUnusedParameter) -> {
|
!languageVersionSettings.supportsFeature(LanguageFeature.WarningOnMainUnusedParameter) -> {
|
||||||
trace.record(UNUSED_MAIN_PARAMETER, element)
|
if (owner.containingClassOrObject == null) {
|
||||||
|
trace.record(UNUSED_MAIN_PARAMETER, element)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
// LANGUAGE_VERSION: 1.3
|
||||||
|
// WITH_RUNTIME
|
||||||
|
// PROBLEM: none
|
||||||
|
|
||||||
|
object SomeMain {
|
||||||
|
@JvmStatic fun main(<caret>args: Array<String>) {}
|
||||||
|
}
|
||||||
+5
@@ -8136,6 +8136,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest {
|
|||||||
runTest("idea/testData/inspectionsLocal/unusedMainParameter/legacy.kt");
|
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")
|
@TestMetadata("simple.kt")
|
||||||
public void testSimple() throws Exception {
|
public void testSimple() throws Exception {
|
||||||
runTest("idea/testData/inspectionsLocal/unusedMainParameter/simple.kt");
|
runTest("idea/testData/inspectionsLocal/unusedMainParameter/simple.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user