[FIR] Fix reporting of CANNOT_INFER_PARAMETER_TYPE on lambda parameters
^KT-56138 Fixed
This commit is contained in:
committed by
Space Team
parent
76d360d793
commit
f479a56f5e
@@ -0,0 +1,37 @@
|
||||
// SKIP_TXT
|
||||
// ISSUE: KT-56138
|
||||
|
||||
fun takeLambda1(f: String.() -> String) {}
|
||||
fun takeLambda2(f: String.(String) -> String) {}
|
||||
|
||||
fun test_1() {
|
||||
val x1: String.(String) -> String = { str, <!CANNOT_INFER_PARAMETER_TYPE!>str2<!> -> "this" }
|
||||
val x2: String.() -> String = { <!UNRESOLVED_REFERENCE!>it<!> }
|
||||
val x3: String.() -> String = { <!CANNOT_INFER_PARAMETER_TYPE!>x<!> -> "x" }
|
||||
}
|
||||
|
||||
fun test_2() {
|
||||
takeLambda2 <!ARGUMENT_TYPE_MISMATCH!>{ str, <!CANNOT_INFER_PARAMETER_TYPE!>str2<!> -> "this" }<!>
|
||||
takeLambda1 { <!UNRESOLVED_REFERENCE!>it<!> }
|
||||
takeLambda1 <!ARGUMENT_TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE!>x<!> -> "x" }<!>
|
||||
}
|
||||
|
||||
fun test_3(b: Boolean) {
|
||||
val x1: String.(String) -> String = if (b) {
|
||||
{ str, <!CANNOT_INFER_PARAMETER_TYPE!>str2<!> -> "this" }
|
||||
} else {
|
||||
{ str, <!CANNOT_INFER_PARAMETER_TYPE!>str2<!> -> "this" }
|
||||
}
|
||||
|
||||
val x2: String.() -> String = if (b) {
|
||||
{ <!UNRESOLVED_REFERENCE!>it<!> }
|
||||
} else {
|
||||
{ <!UNRESOLVED_REFERENCE!>it<!> }
|
||||
}
|
||||
|
||||
val x3: String.() -> String = if (b) {
|
||||
{ <!CANNOT_INFER_PARAMETER_TYPE!>x<!> -> "x" }
|
||||
} else {
|
||||
{ <!CANNOT_INFER_PARAMETER_TYPE!>x<!> -> "x" }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
// SKIP_TXT
|
||||
// ISSUE: KT-56138
|
||||
|
||||
fun takeLambda1(f: String.() -> String) {}
|
||||
fun takeLambda2(f: String.(String) -> String) {}
|
||||
|
||||
fun test_1() {
|
||||
val x1: String.(String) -> String = { <!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>str, <!CANNOT_INFER_PARAMETER_TYPE!>str2<!><!> -> "this" }
|
||||
val x2: String.() -> String = { <!UNRESOLVED_REFERENCE!>it<!> }
|
||||
val x3: String.() -> String = { <!CANNOT_INFER_PARAMETER_TYPE, EXPECTED_PARAMETERS_NUMBER_MISMATCH!>x<!> -> "x" }
|
||||
}
|
||||
|
||||
fun test_2() {
|
||||
takeLambda2 <!TYPE_MISMATCH!>{ <!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>str, <!CANNOT_INFER_PARAMETER_TYPE!>str2<!><!> -> "this" }<!>
|
||||
takeLambda1 <!TYPE_MISMATCH!>{ <!UNRESOLVED_REFERENCE!>it<!> }<!>
|
||||
takeLambda1 <!TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE, EXPECTED_PARAMETERS_NUMBER_MISMATCH!>x<!> -> "x" }<!>
|
||||
}
|
||||
|
||||
fun test_3(b: Boolean) {
|
||||
val x1: String.(String) -> String = if (b) <!TYPE_MISMATCH!>{
|
||||
{ <!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>str, <!CANNOT_INFER_PARAMETER_TYPE!>str2<!><!> -> "this" }
|
||||
}<!> else <!TYPE_MISMATCH!>{
|
||||
{ <!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>str, <!CANNOT_INFER_PARAMETER_TYPE!>str2<!><!> -> "this" }
|
||||
}<!>
|
||||
|
||||
val x2: String.() -> String = if (b) <!TYPE_MISMATCH!>{
|
||||
{ <!UNRESOLVED_REFERENCE!>it<!> }
|
||||
}<!> else <!TYPE_MISMATCH!>{
|
||||
{ <!UNRESOLVED_REFERENCE!>it<!> }
|
||||
}<!>
|
||||
|
||||
val x3: String.() -> String = if (b) <!TYPE_MISMATCH!>{
|
||||
{ <!CANNOT_INFER_PARAMETER_TYPE, EXPECTED_PARAMETERS_NUMBER_MISMATCH!>x<!> -> "x" }
|
||||
}<!> else <!TYPE_MISMATCH!>{
|
||||
{ <!CANNOT_INFER_PARAMETER_TYPE, EXPECTED_PARAMETERS_NUMBER_MISMATCH!>x<!> -> "x" }
|
||||
}<!>
|
||||
}
|
||||
Reference in New Issue
Block a user