FIR checkers: report specific errors instead of INAPPLICABLE_CANDIDATE

Specifically, the report the following 4 errors.

* NON_VARARG_SPREAD
* ARGUMENT_PASSED_TWICE
* TOO_MANY_ARGUMENTS
* NO_VALUE_FOR_PARAMETER

Also added/updated the following position strategies.
* NAME_OF_NAMED_ARGUMENT
* VALUE_ARGUMENTS
This commit is contained in:
Tianyu Geng
2021-03-04 14:01:32 -08:00
committed by Mikhail Glukhikh
parent fc8d0e3ee0
commit 761a0a7d0d
143 changed files with 526 additions and 470 deletions
@@ -4,24 +4,24 @@ class Function1Impl : (String) -> Unit {
fun test1(f: Function1Impl) {
f("")
<!INAPPLICABLE_CANDIDATE!>f<!>(p0 = "")
f(p0 = ""<!NO_VALUE_FOR_PARAMETER!>)<!>
f(myParamName = "")
f.invoke("")
f.<!INAPPLICABLE_CANDIDATE!>invoke<!>(p0 = "")
f.invoke(p0 = ""<!NO_VALUE_FOR_PARAMETER!>)<!>
f.invoke(myParamName = "")
}
fun test2(f: (String) -> Unit) {
f("")
<!INAPPLICABLE_CANDIDATE!>f<!>(p0 = "")
<!INAPPLICABLE_CANDIDATE!>f<!>(myParamName = "")
f(p0 = ""<!NO_VALUE_FOR_PARAMETER!>)<!>
f(myParamName = ""<!NO_VALUE_FOR_PARAMETER!>)<!>
f.invoke("")
f.<!INAPPLICABLE_CANDIDATE!>invoke<!>(p0 = "")
f.<!INAPPLICABLE_CANDIDATE!>invoke<!>(myParamName = "")
f.invoke(p0 = ""<!NO_VALUE_FOR_PARAMETER!>)<!>
f.invoke(myParamName = ""<!NO_VALUE_FOR_PARAMETER!>)<!>
}
fun test3(f: String.(String) -> Unit) {
"".f("")
"".<!INAPPLICABLE_CANDIDATE!>f<!>(p0 = "")
"".<!INAPPLICABLE_CANDIDATE!>f<!>(zzz = "")
"".f(p0 = ""<!NO_VALUE_FOR_PARAMETER!>)<!>
"".f(zzz = ""<!NO_VALUE_FOR_PARAMETER!>)<!>
}