Highlight unused parameters in main function in 1.3 (KT-26999)
This commit is contained in:
+4
-2
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ fun Int.foo() = this
|
||||
fun Any?.equals1(<warning>other</warning> : Any?) : Boolean = true
|
||||
fun Any.equals2(<warning>other</warning> : Any?) : Boolean = true
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
fun main(<warning>args</warning>: Array<String>) {
|
||||
|
||||
System.out.print(1)
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fun main(<warning descr="[UNUSED_PARAMETER] Parameter 'args' is never used">args</warning>: Array<String>) {
|
||||
|
||||
}
|
||||
+1
-1
@@ -2,7 +2,7 @@ package test2
|
||||
|
||||
<info descr="null">enum</info> class En { A, B, С }
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
fun main(<warning>args</warning>: Array<String>) {
|
||||
val en2: Any? = En.A
|
||||
if (en2 is En) {
|
||||
when (<info descr="Smart cast to test2.En">en2</info>) {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
fun main(args: Array<String>) {
|
||||
fun main(<warning>args</warning>: Array<String>) {
|
||||
String.class<EOLError descr="Name expected"></EOLError>
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ fun evaluate(expr: StringBuilder, numbers: ArrayList<Int>): Int {
|
||||
return lhs
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
fun main(<warning>args</warning>: Array<String>) {
|
||||
System.out.println("24 game")
|
||||
val numbers = ArrayList<Int>(4)
|
||||
val rnd = Random();
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ fun parse(<warning>cmd</warning>: String): Command? { return null }
|
||||
|
||||
fun Any.<warning>equals</warning>(other : Any?) : Boolean = this === other
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
fun main(<warning>args</warning>: Array<String>) {
|
||||
val command = parse("")
|
||||
if (command == null) <warning>1</warning> // error on this line, but must be OK
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
fun Any.<warning>equals</warning>(<warning>other</warning> : Any?) : Boolean = true
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
fun main(<warning>args</warning>: Array<String>) {
|
||||
|
||||
val command : Any = 1
|
||||
|
||||
|
||||
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user