diff --git a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinPsiCheckerAndHighlightingUpdater.kt b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinPsiCheckerAndHighlightingUpdater.kt index 4e84a465078..9a01b9dec6d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinPsiCheckerAndHighlightingUpdater.kt +++ b/idea/src/org/jetbrains/kotlin/idea/highlighter/KotlinPsiCheckerAndHighlightingUpdater.kt @@ -17,12 +17,14 @@ package org.jetbrains.kotlin.idea.highlighter import org.jetbrains.kotlin.idea.inspections.UnusedSymbolInspection +import org.jetbrains.kotlin.idea.isMainFunction import org.jetbrains.kotlin.psi.KtNamedFunction import org.jetbrains.kotlin.psi.KtParameter class KotlinPsiCheckerAndHighlightingUpdater : KotlinPsiChecker() { override fun shouldSuppressUnusedParameter(parameter: KtParameter): Boolean { - val grandParent = parameter.parent.parent - return if (grandParent is KtNamedFunction) UnusedSymbolInspection.isEntryPoint(grandParent) else false + val grandParent = parameter.parent.parent as? KtNamedFunction ?: return false + if (!UnusedSymbolInspection.isEntryPoint(grandParent)) return false + return !grandParent.isMainFunction() } } diff --git a/idea/testData/checker/ExtensionFunctions.kt b/idea/testData/checker/ExtensionFunctions.kt index ad332cce69c..7747f4aebc5 100644 --- a/idea/testData/checker/ExtensionFunctions.kt +++ b/idea/testData/checker/ExtensionFunctions.kt @@ -50,7 +50,7 @@ fun Int.foo() = this fun Any?.equals1(other : Any?) : Boolean = true fun Any.equals2(other : Any?) : Boolean = true - fun main(args: Array) { + fun main(args: Array) { System.out.print(1) diff --git a/idea/testData/checker/UnusedParameterInEntry12.kt b/idea/testData/checker/UnusedParameterInEntry12.kt new file mode 100644 index 00000000000..15eaac5c185 --- /dev/null +++ b/idea/testData/checker/UnusedParameterInEntry12.kt @@ -0,0 +1,5 @@ +// LANGUAGE_VERSION: 1.2 + +fun main(args: Array) { + +} \ No newline at end of file diff --git a/idea/testData/checker/UnusedParameterInEntry13.kt b/idea/testData/checker/UnusedParameterInEntry13.kt new file mode 100644 index 00000000000..c6c1faeb8dc --- /dev/null +++ b/idea/testData/checker/UnusedParameterInEntry13.kt @@ -0,0 +1,3 @@ +fun main(args: Array) { + +} \ No newline at end of file diff --git a/idea/testData/checker/infos/SmartCastToEnum.kt b/idea/testData/checker/infos/SmartCastToEnum.kt index 3542cca816d..9f862e127d4 100644 --- a/idea/testData/checker/infos/SmartCastToEnum.kt +++ b/idea/testData/checker/infos/SmartCastToEnum.kt @@ -2,7 +2,7 @@ package test2 enum class En { A, B, ะก } -fun main(args: Array) { +fun main(args: Array) { val en2: Any? = En.A if (en2 is En) { when (en2) { diff --git a/idea/testData/checker/regression/BadParseForClass.kt b/idea/testData/checker/regression/BadParseForClass.kt index 5ea57af0892..4a5e73b7553 100644 --- a/idea/testData/checker/regression/BadParseForClass.kt +++ b/idea/testData/checker/regression/BadParseForClass.kt @@ -1,4 +1,4 @@ -fun main(args: Array) { +fun main(args: Array) { String.class } diff --git a/idea/testData/checker/regression/DoubleDefine.kt b/idea/testData/checker/regression/DoubleDefine.kt index a4716e628e9..485ccf56394 100644 --- a/idea/testData/checker/regression/DoubleDefine.kt +++ b/idea/testData/checker/regression/DoubleDefine.kt @@ -38,7 +38,7 @@ fun evaluate(expr: StringBuilder, numbers: ArrayList): Int { return lhs } -fun main(args: Array) { +fun main(args: Array) { System.out.println("24 game") val numbers = ArrayList(4) val rnd = Random(); diff --git a/idea/testData/checker/regression/Jet69.kt b/idea/testData/checker/regression/Jet69.kt index a83894fbebe..87fbc11ef1a 100644 --- a/idea/testData/checker/regression/Jet69.kt +++ b/idea/testData/checker/regression/Jet69.kt @@ -4,7 +4,7 @@ fun parse(cmd: String): Command? { return null } fun Any.equals(other : Any?) : Boolean = this === other -fun main(args: Array) { +fun main(args: Array) { val command = parse("") if (command == null) 1 // error on this line, but must be OK } diff --git a/idea/testData/checker/regression/SpecififcityByReceiver.kt b/idea/testData/checker/regression/SpecififcityByReceiver.kt index 5e1c2d4e331..5b476daebe6 100644 --- a/idea/testData/checker/regression/SpecififcityByReceiver.kt +++ b/idea/testData/checker/regression/SpecififcityByReceiver.kt @@ -1,6 +1,6 @@ fun Any.equals(other : Any?) : Boolean = true -fun main(args: Array) { +fun main(args: Array) { val command : Any = 1 diff --git a/idea/tests/org/jetbrains/kotlin/checkers/PsiCheckerTestGenerated.java b/idea/tests/org/jetbrains/kotlin/checkers/PsiCheckerTestGenerated.java index b84318af1ad..7dd1f593515 100644 --- a/idea/tests/org/jetbrains/kotlin/checkers/PsiCheckerTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/checkers/PsiCheckerTestGenerated.java @@ -321,6 +321,16 @@ public class PsiCheckerTestGenerated extends AbstractPsiCheckerTest { runTest("idea/testData/checker/Unused.kt"); } + @TestMetadata("UnusedParameterInEntry12.kt") + public void testUnusedParameterInEntry12() throws Exception { + runTest("idea/testData/checker/UnusedParameterInEntry12.kt"); + } + + @TestMetadata("UnusedParameterInEntry13.kt") + public void testUnusedParameterInEntry13() throws Exception { + runTest("idea/testData/checker/UnusedParameterInEntry13.kt"); + } + @TestMetadata("Variance.kt") public void testVariance() throws Exception { runTest("idea/testData/checker/Variance.kt");