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
@@ -20,7 +20,7 @@ class A
|
||||
infix operator fun A.plus(a : Any) {
|
||||
|
||||
1.foo()
|
||||
true.<!INAPPLICABLE_CANDIDATE!>foo<!>()
|
||||
true.foo(<!NO_VALUE_FOR_PARAMETER, NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
|
||||
1
|
||||
}
|
||||
|
||||
+2
-2
@@ -16,7 +16,7 @@ class C : T {
|
||||
super.foo() // OK
|
||||
super.<!UNRESOLVED_REFERENCE!>bar<!>() // Error
|
||||
super.buzz() // OK, resolved to a member
|
||||
super.<!INAPPLICABLE_CANDIDATE!>buzz1<!>() // Resolved to an extension
|
||||
super.buzz1(<!NO_VALUE_FOR_PARAMETER!>)<!> // Resolved to an extension
|
||||
super.<!INAPPLICABLE_CANDIDATE!>buzz1<!>("") // Resolved to a member
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -20,8 +20,8 @@ fun Int.foo() {}
|
||||
fun test3(s: String?) {
|
||||
"".<!INAPPLICABLE_CANDIDATE!>foo<!>()
|
||||
s<!UNSAFE_CALL!>.<!>foo()
|
||||
"".<!INAPPLICABLE_CANDIDATE!>foo<!>(1)
|
||||
s.<!INAPPLICABLE_CANDIDATE!>foo<!>("a")
|
||||
"".foo(<!TOO_MANY_ARGUMENTS!>1<!>)
|
||||
s.foo(<!TOO_MANY_ARGUMENTS!>"a"<!>)
|
||||
}
|
||||
|
||||
interface A
|
||||
|
||||
@@ -6,6 +6,6 @@ class A(foo: Int.() -> Unit) {
|
||||
|
||||
fun test(foo: Int.(String) -> Unit) {
|
||||
4.foo("")
|
||||
4.<!INAPPLICABLE_CANDIDATE!>foo<!>(p1 = "")
|
||||
4.foo(<!NAMED_ARGUMENTS_NOT_ALLOWED!>p2 = ""<!>)
|
||||
4.foo(p1 = ""<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||
4.foo(<!NAMED_ARGUMENTS_NOT_ALLOWED!>p2<!> = "")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user