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
@@ -10,7 +10,7 @@ fun main() {
join(1)
join(1, "2")
join(1, "2", "3")
<!INAPPLICABLE_CANDIDATE!>join<!>(*1, "2")
join(<!NON_VARARG_SPREAD!>*<!>1, "2")
<!INAPPLICABLE_CANDIDATE!>join<!>(1, *"2")
join(x = 1, a = "2")
join(x = *1, a = *"2")
@@ -30,7 +30,7 @@ fun main() {
join(a = a, x = 1)
joinG<String>(1, "2")
<!INAPPLICABLE_CANDIDATE!>joinG<!><String>(*1, "2")
joinG<String>(<!NON_VARARG_SPREAD!>*<!>1, "2")
<!INAPPLICABLE_CANDIDATE!>joinG<!><String>(1, *"2")
joinG<String>(x = 1, a = a)
joinG<String>(x = 1, a = "2")
@@ -43,7 +43,7 @@ fun main() {
joinG<String>(a = a, x = 1)
joinG(1, "2")
<!INAPPLICABLE_CANDIDATE!>joinG<!>(*1, "2")
joinG(<!NON_VARARG_SPREAD!>*<!>1, "2")
<!INAPPLICABLE_CANDIDATE!>joinG<!>(1, *"2")
joinG(x = 1, a = a)
joinG(x = 1, a = "2")
@@ -57,7 +57,7 @@ fun main() {
val x1 = joinT(1, "2")
checkSubtype<String?>(x1)
val x2 = <!INAPPLICABLE_CANDIDATE!>joinT<!>(*1, "2")
val x2 = joinT(<!NON_VARARG_SPREAD!>*<!>1, "2")
checkSubtype<String?>(x2)
val x6 = joinT(1, *a)
checkSubtype<String?>(x6)