FIR checker: introduce PARAMETER_* positioning strategies

and use them to add support diagnostics:
ANONYMOUS_FUNCTION_PARAMETER_WITH_DEFAULT_VALUE
USELESS_VARARG_ON_PARAMETER
This commit is contained in:
Jinseong Jeon
2021-01-21 11:56:41 -08:00
committed by Mikhail Glukhikh
parent 33b7c68a21
commit 8b4f2b269c
16 changed files with 214 additions and 20 deletions
@@ -0,0 +1,45 @@
FILE: Parameters.kt
public final val bar: R|(kotlin/Int) -> kotlin/Unit| = fun <anonymous>(p: R|kotlin/Int| = Int(3)): R|kotlin/Unit| {
}
public get(): R|(kotlin/Int) -> kotlin/Unit|
public final val bas: R|(kotlin/Int) -> kotlin/Unit| = fun <anonymous>(vararg p: R|kotlin/Int|): R|kotlin/Unit| {
}
public get(): R|(kotlin/Int) -> kotlin/Unit|
public final fun gar(): R|(kotlin/Int) -> kotlin/Unit| {
^gar fun <anonymous>(p: R|kotlin/Int| = Int(3)): R|kotlin/Unit| {
}
}
public final fun gas(): R|(kotlin/Int) -> kotlin/Unit| {
^gas fun <anonymous>(vararg p: R|kotlin/Int|): R|kotlin/Unit| {
}
}
public final fun outer(b: R|kotlin/Any?|): R|kotlin/Unit| {
lval bar: R|(kotlin/Int) -> kotlin/Unit| = fun <anonymous>(p: R|kotlin/Int| = Int(3)): R|kotlin/Unit| {
}
lval bas: R|(kotlin/Int) -> kotlin/Unit| = fun <anonymous>(vararg p: R|kotlin/Int|): R|kotlin/Unit| {
}
local final fun gar(): R|(kotlin/Int) -> kotlin/Unit| {
^gar fun <anonymous>(p: R|kotlin/Int| = Int(3)): R|kotlin/Unit| {
}
}
local final fun gas(): R|(kotlin/Int) -> kotlin/Unit| {
^gas fun <anonymous>(vararg p: R|kotlin/Int|): R|kotlin/Unit| {
}
}
R|/outer|(fun <anonymous>(p: R|kotlin/Int| = Int(3)): R|kotlin/Unit| {
}
)
R|/outer|(fun <anonymous>(vararg p: R|kotlin/Int|): R|kotlin/Unit| {
}
)
}
@@ -0,0 +1,16 @@
val bar = fun(p: Int = <!ANONYMOUS_FUNCTION_PARAMETER_WITH_DEFAULT_VALUE!>3<!>) {}
val bas = fun(<!USELESS_VARARG_ON_PARAMETER!>vararg p: Int<!>) {}
fun gar() = fun(p: Int = <!ANONYMOUS_FUNCTION_PARAMETER_WITH_DEFAULT_VALUE!>3<!>) {}
fun gas() = fun(<!USELESS_VARARG_ON_PARAMETER!>vararg p: Int<!>) {}
fun outer(b: Any?) {
val bar = fun(p: Int = <!ANONYMOUS_FUNCTION_PARAMETER_WITH_DEFAULT_VALUE!>3<!>) {}
val bas = fun(<!USELESS_VARARG_ON_PARAMETER!>vararg p: Int<!>) {}
fun gar() = fun(p: Int = <!ANONYMOUS_FUNCTION_PARAMETER_WITH_DEFAULT_VALUE!>3<!>) {}
fun gas() = fun(<!USELESS_VARARG_ON_PARAMETER!>vararg p: Int<!>) {}
outer(fun(p: Int = <!ANONYMOUS_FUNCTION_PARAMETER_WITH_DEFAULT_VALUE!>3<!>) {})
outer(fun(<!USELESS_VARARG_ON_PARAMETER!>vararg p: Int<!>) {})
}