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
Vendored
-23
@@ -1,23 +0,0 @@
|
||||
// FILE: A.java
|
||||
public @interface A {
|
||||
String[] value();
|
||||
Class<?> x() default Integer.class;
|
||||
int y();
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
@A("1", "2", "3", y = 1) fun test1() {}
|
||||
|
||||
@A("4", y = 2) fun test2() {}
|
||||
|
||||
@A(*arrayOf("5", "6"), "7", y = 3) fun test3() {}
|
||||
|
||||
@A("1", "2", "3", x = String::class, y = 4) fun test4() {}
|
||||
|
||||
@A("4", y = 5) fun test5() {}
|
||||
|
||||
@A(*arrayOf("5", "6"), "7", x = Any::class, y = 6) fun test6() {}
|
||||
|
||||
@A(y = 7) fun test7() {}
|
||||
|
||||
<!INAPPLICABLE_CANDIDATE!>@A("8", "9", "10")<!> fun test8() {}
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// FILE: A.java
|
||||
public @interface A {
|
||||
String[] value();
|
||||
|
||||
+2
-2
@@ -6,6 +6,6 @@ public @interface A {
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
<!INAPPLICABLE_CANDIDATE!>@A(false,
|
||||
@A(false,
|
||||
1.0,
|
||||
false, 1, 2)<!> fun foo1() {}
|
||||
false, <!TOO_MANY_ARGUMENTS!>1<!>, <!TOO_MANY_ARGUMENTS!>2<!>) fun foo1() {}
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ fun test() {
|
||||
|
||||
severalParams("", 89) checkType { _<Double>() }
|
||||
// TODO: should we allow somehow to call with passing continuation explicitly?
|
||||
<!INAPPLICABLE_CANDIDATE!>severalParams<!>("", 89, 6.9) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Unit>() }
|
||||
severalParams("", 89, <!TOO_MANY_ARGUMENTS!>6.9<!>) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Unit>() }
|
||||
|
||||
"".stringReceiver(1)
|
||||
Any().anyReceiver(1)
|
||||
|
||||
+2
-2
@@ -37,7 +37,7 @@ fun test() {
|
||||
severalParams("", 89) checkType { _<Double>() }
|
||||
|
||||
// TODO: should we allow somehow to call with passing continuation explicitly?
|
||||
<!INAPPLICABLE_CANDIDATE!>severalParams<!>("", 89, 6.9) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Unit>() }
|
||||
<!INAPPLICABLE_CANDIDATE!>severalParams<!>("", 89, this as Continuation<Double>) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Unit>() }
|
||||
severalParams("", 89, <!TOO_MANY_ARGUMENTS!>6.9<!>) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Unit>() }
|
||||
severalParams("", 89, <!TOO_MANY_ARGUMENTS!>this as Continuation<Double><!>) checkType { <!INAPPLICABLE_CANDIDATE!>_<!><Unit>() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
// !WITH_NEW_INFERENCE
|
||||
// NI_EXPECTED_FILE
|
||||
|
||||
fun foo(first: Array<Any?>, second: Array<Any?>) = Pair(first.<!INAPPLICABLE_CANDIDATE!>toCollection<!>(), second.<!INAPPLICABLE_CANDIDATE!>toCollection<!>())
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !WITH_NEW_INFERENCE
|
||||
// NI_EXPECTED_FILE
|
||||
|
||||
|
||||
@@ -12,13 +12,13 @@ fun <E> List<*>.toArray(ar: Array<E>): Array<E> = ar
|
||||
fun testArrays(ci: List<Int?>, cii: List<Int?>?) {
|
||||
val c1: Array<Int?> = cii.sure().<!INAPPLICABLE_CANDIDATE!>toArray<!>(Array<Int?>)
|
||||
|
||||
val c2: Array<Int?> = ci.toArray(<!INAPPLICABLE_CANDIDATE!>Array<!><Int?>())
|
||||
val c2: Array<Int?> = ci.toArray(Array<Int?>(<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>)<!>)
|
||||
|
||||
val c3 = <!INAPPLICABLE_CANDIDATE!>Array<!><Int?>()
|
||||
val c3 = Array<Int?>(<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
|
||||
val c4 = ci.toArray<Int?>(<!INAPPLICABLE_CANDIDATE!>Array<!><Int?>())
|
||||
val c4 = ci.toArray<Int?>(Array<Int?>(<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>)<!>)
|
||||
|
||||
val c5 = ci.toArray(<!INAPPLICABLE_CANDIDATE!>Array<!><Int?>())
|
||||
val c5 = ci.toArray(Array<Int?>(<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>)<!>)
|
||||
|
||||
checkSubtype<Array<Int?>>(c1)
|
||||
checkSubtype<Array<Int?>>(c2)
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
<!INAPPLICABLE_CANDIDATE!>@JvmName()<!>
|
||||
@JvmName(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
fun foo() {}
|
||||
|
||||
<!INAPPLICABLE_CANDIDATE!>@JvmName(42)<!>
|
||||
fun bar() {}
|
||||
|
||||
<!INAPPLICABLE_CANDIDATE!>@JvmName("a", "b")<!>
|
||||
@JvmName("a", <!TOO_MANY_ARGUMENTS!>"b"<!>)
|
||||
fun baz() {}
|
||||
|
||||
Reference in New Issue
Block a user