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:
committed by
Mikhail Glukhikh
parent
fc8d0e3ee0
commit
761a0a7d0d
+2
-2
@@ -17,7 +17,7 @@ fun case1() {
|
||||
}
|
||||
|
||||
class B() {
|
||||
val p: String by <!INAPPLICABLE_CANDIDATE!>Delegate<!>() // DELEGATE_SPECIAL_FUNCTION_MISSING expected
|
||||
val p: String by <!TOO_MANY_ARGUMENTS!>Delegate()<!> // DELEGATE_SPECIAL_FUNCTION_MISSING expected
|
||||
}
|
||||
|
||||
class Delegate {
|
||||
@@ -42,7 +42,7 @@ fun case2() {
|
||||
}
|
||||
|
||||
class B() {
|
||||
var p: String by <!INAPPLICABLE_CANDIDATE!>Delegate<!>() // DELEGATE_SPECIAL_FUNCTION_MISSING expected
|
||||
var p: String by <!TOO_MANY_ARGUMENTS!>Delegate()<!> // DELEGATE_SPECIAL_FUNCTION_MISSING expected
|
||||
}
|
||||
|
||||
class Delegate {
|
||||
|
||||
@@ -23,7 +23,7 @@ fun case_2() {
|
||||
fun case_3() {
|
||||
var x: Class? = Class()
|
||||
x!!
|
||||
val y = <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>[if (true) {x=null;0} else 0, <!INAPPLICABLE_CANDIDATE!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>]
|
||||
val y = <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>[if (true) {x=null;0} else 0, <!NO_VALUE_FOR_PARAMETER!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>]
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
|
||||
}
|
||||
|
||||
@@ -41,9 +41,9 @@ fun case_3() {
|
||||
fun case_4() {
|
||||
var x: Class? = Class()
|
||||
x!!
|
||||
val y = <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>[if (true) {x=null;0} else 0, <!INAPPLICABLE_CANDIDATE!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>]
|
||||
val y = <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>[if (true) {x=null;0} else 0, <!NO_VALUE_FOR_PARAMETER!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>]
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
|
||||
<!INAPPLICABLE_CANDIDATE!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>.inv()
|
||||
<!NO_VALUE_FOR_PARAMETER!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>.inv()
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -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!>)<!>
|
||||
}
|
||||
|
||||
@@ -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!>)<!>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ class Case1<T : Number> {
|
||||
inline fun <reified T : CharSequence>case_1(x: Any?) {
|
||||
if (x is T) {
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & T")!>x<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>toByte<!>()
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & T")!>x<!>.toByte(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,9 +24,9 @@ fun case_1(x: Any?, y: Any?) {
|
||||
fun case_2(x: Any?, y: Any?) {
|
||||
if (x as Int === y) {
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Int")!>x<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Int")!>x<!>.<!INAPPLICABLE_CANDIDATE!>inv<!>(10)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Int")!>x<!>.inv(<!TOO_MANY_ARGUMENTS!>10<!>)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Int")!>y<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Int")!>y<!>.<!INAPPLICABLE_CANDIDATE!>inv<!>(10)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Int")!>y<!>.inv(<!TOO_MANY_ARGUMENTS!>10<!>)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,8 +52,8 @@ fun case_3(x: Any?, y: Any?) {
|
||||
fun case_4(x: Any?, y: Any?) {
|
||||
if (y === x as Int) {
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Int")!>x<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Int")!>x<!>.<!INAPPLICABLE_CANDIDATE!>inv<!>(10)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Int")!>x<!>.inv(<!TOO_MANY_ARGUMENTS!>10<!>)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Int")!>y<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Int")!>y<!>.<!INAPPLICABLE_CANDIDATE!>inv<!>(10)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Int")!>y<!>.inv(<!TOO_MANY_ARGUMENTS!>10<!>)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user