[FIR] Show ARGUMENTS_MAPPING_ERROR diagnostics along with INAPPLICABLE
K1 reports `ARGUMENT_TYPE_MISMATCH` and `TOO_MANY_ARGUMENTS` together, and one way to do it in K2 is to say that their kinds of inapplicability difference is not relevant to the user. Note that K1 doesn't do such filtering, so this change "makes K2 closer to K1", but still different. ^KT-62541 Fixed fixup! [FIR] Show ARGUMENTS_MAPPING_ERROR diagnostics along with INAPPLICABLE
This commit is contained in:
committed by
Space Team
parent
06b3c6ec13
commit
fedadfb8db
+1
-1
@@ -3,7 +3,7 @@
|
||||
fun foo(i1: Int) {}
|
||||
|
||||
fun test() {
|
||||
foo("",
|
||||
foo(<!ARGUMENT_TYPE_MISMATCH!>""<!>,
|
||||
<!TOO_MANY_ARGUMENTS!>2<!>
|
||||
)
|
||||
}
|
||||
+5
-5
@@ -12,17 +12,17 @@ fun test() {
|
||||
|
||||
bar <!TOO_MANY_ARGUMENTS!>{ }<!>
|
||||
|
||||
foo("", 1, <!TOO_MANY_ARGUMENTS, UNRESOLVED_REFERENCE!>xx<!>)
|
||||
foo(<!ARGUMENT_TYPE_MISMATCH!>""<!>, <!ARGUMENT_TYPE_MISMATCH!>1<!>, <!TOO_MANY_ARGUMENTS, UNRESOLVED_REFERENCE!>xx<!>)
|
||||
|
||||
foo(<!NAMED_PARAMETER_NOT_FOUND!>r<!> = <!UNRESOLVED_REFERENCE!>xx<!>, i = "", s = "")
|
||||
foo(<!NAMED_PARAMETER_NOT_FOUND!>r<!> = <!UNRESOLVED_REFERENCE!>xx<!>, i = <!ARGUMENT_TYPE_MISMATCH!>""<!>, s = "")
|
||||
|
||||
foo(i = 1, <!ARGUMENT_PASSED_TWICE!>i<!> = 1, s = <!ARGUMENT_TYPE_MISMATCH!>11<!>)
|
||||
|
||||
foo(<!ARGUMENT_TYPE_MISMATCH!>""<!>, s = <!ARGUMENT_TYPE_MISMATCH!>2<!>)
|
||||
|
||||
foo(i = "", s = 2, <!TOO_MANY_ARGUMENTS!>33<!>)
|
||||
foo(i = <!ARGUMENT_TYPE_MISMATCH!>""<!>, s = <!ARGUMENT_TYPE_MISMATCH!>2<!>, <!TOO_MANY_ARGUMENTS!>33<!>)
|
||||
|
||||
foo("", 1) <!TOO_MANY_ARGUMENTS!>{}<!>
|
||||
foo(<!ARGUMENT_TYPE_MISMATCH!>""<!>, <!ARGUMENT_TYPE_MISMATCH!>1<!>) <!TOO_MANY_ARGUMENTS!>{}<!>
|
||||
|
||||
foo("", 1) <!TOO_MANY_ARGUMENTS!>{}<!> <!MANY_LAMBDA_EXPRESSION_ARGUMENTS!>{}<!>
|
||||
foo(<!ARGUMENT_TYPE_MISMATCH!>""<!>, <!ARGUMENT_TYPE_MISMATCH!>1<!>) <!TOO_MANY_ARGUMENTS!>{}<!> <!MANY_LAMBDA_EXPRESSION_ARGUMENTS!>{}<!>
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
// FILE: test.kt
|
||||
val bar2 by bar2<!NO_VALUE_FOR_PARAMETER!>()<!>
|
||||
val bar2 by <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>bar2<!><!NO_VALUE_FOR_PARAMETER!>()<!>
|
||||
|
||||
// FILE: lt/neworld/compiler/Foo.kt
|
||||
package lt.neworld.compiler
|
||||
|
||||
class Foo {
|
||||
val bar by bar<!NO_VALUE_FOR_PARAMETER!>()<!>
|
||||
val bar by <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER, NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>bar<!><!NO_VALUE_FOR_PARAMETER!>()<!>
|
||||
}
|
||||
|
||||
// FILE: lt/neworld/compiler/bar/Bar.kt
|
||||
|
||||
@@ -6,6 +6,6 @@ class A(foo: Int.() -> Unit) {
|
||||
|
||||
fun test(foo: Int.(String) -> Unit) {
|
||||
4.foo("")
|
||||
4.foo(<!NO_VALUE_FOR_PARAMETER!><!NAMED_ARGUMENTS_NOT_ALLOWED!>p1<!> = "")<!>
|
||||
4.foo(<!NO_VALUE_FOR_PARAMETER!><!ARGUMENT_PASSED_TWICE, NAMED_ARGUMENTS_NOT_ALLOWED!>p1<!> = "")<!>
|
||||
4.foo(<!NAMED_ARGUMENTS_NOT_ALLOWED!>p2<!> = "")
|
||||
}
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ fun test() {
|
||||
|
||||
bar(z = "")
|
||||
bar<!NO_VALUE_FOR_PARAMETER!>()<!>
|
||||
bar(<!NO_VALUE_FOR_PARAMETER!>"")<!>
|
||||
bar(<!NO_VALUE_FOR_PARAMETER!><!ARGUMENT_TYPE_MISMATCH!>""<!>)<!>
|
||||
bar(1, 1, "")
|
||||
bar(1, 1, "")
|
||||
bar(1, z = "")
|
||||
|
||||
@@ -15,5 +15,5 @@ fun main() {
|
||||
1.set(2, z = 1)
|
||||
1[2] += 1
|
||||
|
||||
1.set(2, <!NO_VALUE_FOR_PARAMETER!>1)<!>
|
||||
1.set(2, <!NO_VALUE_FOR_PARAMETER!><!ARGUMENT_TYPE_MISMATCH!>1<!>)<!>
|
||||
}
|
||||
|
||||
+2
-2
@@ -4,7 +4,7 @@ class X<V>(provider: () -> V, trackValue: Boolean) {
|
||||
}
|
||||
|
||||
class B {
|
||||
val c = <!NO_VALUE_FOR_PARAMETER!>X<!><String> {
|
||||
val c = <!NO_VALUE_FOR_PARAMETER!>X<!><String> <!ARGUMENT_TYPE_MISMATCH!>{
|
||||
"e"
|
||||
}
|
||||
}<!>
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -6,7 +6,7 @@ fun test1() {
|
||||
|
||||
fun test2(f: String.(Int) -> Unit) {
|
||||
<!ARGUMENT_TYPE_MISMATCH!>11<!>.(f)(1)
|
||||
11.(f)<!NO_VALUE_FOR_PARAMETER!>()<!>
|
||||
<!ARGUMENT_TYPE_MISMATCH!>11<!>.(f)<!NO_VALUE_FOR_PARAMETER!>()<!>
|
||||
}
|
||||
|
||||
fun test3() {
|
||||
|
||||
Vendored
+1
-1
@@ -8,6 +8,6 @@ class SomeClass
|
||||
fun test(identifier: SomeClass, fn: String.() -> Unit) {
|
||||
<!NONE_APPLICABLE!>identifier<!>()
|
||||
<!NONE_APPLICABLE!>identifier<!>(123)
|
||||
identifier(1, <!TOO_MANY_ARGUMENTS!>2<!>)
|
||||
identifier(<!ARGUMENT_TYPE_MISMATCH!>1<!>, <!TOO_MANY_ARGUMENTS!>2<!>)
|
||||
<!ARGUMENT_TYPE_MISMATCH!>1<!>.fn()
|
||||
}
|
||||
|
||||
@@ -82,8 +82,8 @@ fun testVararg() {
|
||||
varargFn(1,2,3) // comment
|
||||
// comment
|
||||
<!VARARG_OUTSIDE_PARENTHESES!>{}<!>
|
||||
varargFn(1,2,3) {} <!MANY_LAMBDA_EXPRESSION_ARGUMENTS!>{}<!>
|
||||
varargFn(1,2,3) {}
|
||||
varargFn(1,2,3) <!VARARG_OUTSIDE_PARENTHESES!>{}<!> <!MANY_LAMBDA_EXPRESSION_ARGUMENTS!>{}<!>
|
||||
varargFn(1,2,3) <!VARARG_OUTSIDE_PARENTHESES!>{}<!>
|
||||
<!MANY_LAMBDA_EXPRESSION_ARGUMENTS!>{}<!>
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -6,6 +6,6 @@ public @interface A {
|
||||
}
|
||||
|
||||
// FILE: b.kt
|
||||
@A(<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>false<!>,
|
||||
@A(<!ARGUMENT_TYPE_MISMATCH, POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>false<!>,
|
||||
<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>1.0<!>,
|
||||
<!POSITIONED_VALUE_ARGUMENT_FOR_JAVA_ANNOTATION!>false<!>, <!TOO_MANY_ARGUMENTS!>1<!>, <!TOO_MANY_ARGUMENTS!>2<!>) fun foo1() {}
|
||||
|
||||
Reference in New Issue
Block a user