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
@@ -20,7 +20,7 @@ fun case_1(x: Any) {
fun case_2(x: Any?) {
if (x is Int || x is Float?) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!>.<!INAPPLICABLE_CANDIDATE!>toByte<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!>.toByte(<!NO_VALUE_FOR_PARAMETER!>)<!>
}
}
@@ -31,7 +31,7 @@ fun case_2(x: Any?) {
fun case_3(x: Any?) {
if (x is Int? || x is Float) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!>.<!INAPPLICABLE_CANDIDATE!>toByte<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!>.toByte(<!NO_VALUE_FOR_PARAMETER!>)<!>
}
}
@@ -75,7 +75,7 @@ fun <T> case_6(x: T) {
fun <T> case_7(x: T) {
if (x is Int? || x is Float?) {
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>toByte<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!>.toByte(<!NO_VALUE_FOR_PARAMETER!>)<!>
}
}
@@ -86,7 +86,7 @@ fun <T> case_7(x: T) {
inline fun <reified T> case_8(x: T) {
if (x is Int? || x is Float?) {
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!>
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>toByte<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!>.toByte(<!NO_VALUE_FOR_PARAMETER!>)<!>
}
}