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
@@ -50,14 +50,14 @@ fun case_4(x: Class?, y: Any) {
fun case_5(x: Class?, y: String?) {
x?.prop_12 = y ?: return
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>.<!INAPPLICABLE_CANDIDATE!>toUpperCase<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>.toUpperCase(<!NO_VALUE_FOR_PARAMETER!>)<!>
}
// TESTCASE NUMBER: 6
fun case_6(x: Class?, y: String?) {
x?.prop_9 = y !is String && throw Exception()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>.<!INAPPLICABLE_CANDIDATE!>toUpperCase<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>.toUpperCase(<!NO_VALUE_FOR_PARAMETER!>)<!>
}
/*
@@ -68,7 +68,7 @@ fun case_6(x: Class?, y: String?) {
fun case_7(x: Class?, y: String?) {
x?.prop_12 = y!!
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>.<!INAPPLICABLE_CANDIDATE!>toUpperCase<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>.toUpperCase(<!NO_VALUE_FOR_PARAMETER!>)<!>
}
/*
@@ -79,5 +79,5 @@ fun case_7(x: Class?, y: String?) {
fun case_8(x: Class?, y: String?) {
x?.prop_12 = if (y === null) throw Exception() else ""
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>.<!INAPPLICABLE_CANDIDATE!>toUpperCase<!>()
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>.toUpperCase(<!NO_VALUE_FOR_PARAMETER!>)<!>
}