Highlight unused parameters in main function in 1.3 (KT-26999)

This commit is contained in:
Mikhail Glukhikh
2018-10-18 17:36:58 +03:00
parent 17da136420
commit 387efc3791
10 changed files with 28 additions and 8 deletions
@@ -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
View File
@@ -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)
+5
View File
@@ -0,0 +1,5 @@
// LANGUAGE_VERSION: 1.2
fun main(args: Array<String>) {
}
+3
View File
@@ -0,0 +1,3 @@
fun main(<warning descr="[UNUSED_PARAMETER] Parameter 'args' is never used">args</warning>: Array<String>) {
}
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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 -1
View File
@@ -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");