Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/arguments/lambda.kt
T
Tianyu Geng 761a0a7d0d 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
2021-04-02 14:36:14 +03:00

35 lines
676 B
Kotlin
Vendored

fun foo(f: () -> Unit) {}
fun bar(x: Int, f: () -> Unit) {}
fun baz(f: () -> Unit, other: Boolean = true) {}
fun test() {
// OK
foo {}
foo() {}
foo({})
// Bad
foo(1) <!TOO_MANY_ARGUMENTS!>{}<!>
foo(f = {}) <!TOO_MANY_ARGUMENTS!>{}<!>
// OK
bar(1) {}
bar(x = 1) {}
bar(1, {})
bar(x = 1, f = {})
// Bad
<!NO_VALUE_FOR_PARAMETER!>bar {}<!>
bar({}<!NO_VALUE_FOR_PARAMETER!>)<!>
// OK
baz(other = false, f = {})
baz({}, false)
// Bad
<!NO_VALUE_FOR_PARAMETER!>baz {}<!>
baz(<!NO_VALUE_FOR_PARAMETER!>)<!> {}
baz(other = false<!NO_VALUE_FOR_PARAMETER!>)<!> <!TOO_MANY_ARGUMENTS!>{}<!>
}