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");