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
@@ -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() {}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: A.java
public @interface A {
String[] value();
@@ -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() {}