[FE 1.0] Don't lose diagnostics during lambda analysis at the overload resolution by return type stage
^KT-49658 Fixed
This commit is contained in:
committed by
teamcity
parent
7820b268fb
commit
37d163d417
@@ -0,0 +1,16 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
fun doTheMapThing1(elements: List<CharSequence>): List<String> {
|
||||
return elements.flatMap {
|
||||
<!ARGUMENT_TYPE_MISMATCH!>when (it) { // NullPointerException
|
||||
is String -> listOf("Yeah")
|
||||
else -> null
|
||||
}<!>
|
||||
}
|
||||
}
|
||||
|
||||
fun doTheMapThing2(elements: List<CharSequence>): List<String> {
|
||||
return elements.flatMap {
|
||||
<!ARGUMENT_TYPE_MISMATCH!>if (it is String) listOf("Yeah") else null<!> // it's OK with `if`
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
fun doTheMapThing1(elements: List<CharSequence>): List<String> {
|
||||
return elements.flatMap {
|
||||
<!TYPE_MISMATCH_WARNING!>when (it) { // NullPointerException
|
||||
is String -> listOf("Yeah")
|
||||
else -> null
|
||||
}<!>
|
||||
}
|
||||
}
|
||||
|
||||
fun doTheMapThing2(elements: List<CharSequence>): List<String> {
|
||||
return elements.flatMap {
|
||||
<!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH_WARNING!>if (it is String) listOf("Yeah") else null<!> // it's OK with `if`
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package
|
||||
|
||||
public fun doTheMapThing1(/*0*/ elements: kotlin.collections.List<kotlin.CharSequence>): kotlin.collections.List<kotlin.String>
|
||||
public fun doTheMapThing2(/*0*/ elements: kotlin.collections.List<kotlin.CharSequence>): kotlin.collections.List<kotlin.String>
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
// !LANGUAGE: +DontLoseDiagnosticsDuringOverloadResolutionByReturnType
|
||||
// WITH_STDLIB
|
||||
|
||||
fun doTheMapThing1(elements: List<CharSequence>): List<String> {
|
||||
return elements.flatMap {
|
||||
<!ARGUMENT_TYPE_MISMATCH!>when (it) { // NullPointerException
|
||||
is String -> listOf("Yeah")
|
||||
else -> null
|
||||
}<!>
|
||||
}
|
||||
}
|
||||
|
||||
fun doTheMapThing2(elements: List<CharSequence>): List<String> {
|
||||
return elements.flatMap {
|
||||
<!ARGUMENT_TYPE_MISMATCH!>if (it is String) listOf("Yeah") else null<!> // it's OK with `if`
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
// !LANGUAGE: +DontLoseDiagnosticsDuringOverloadResolutionByReturnType
|
||||
// WITH_STDLIB
|
||||
|
||||
fun doTheMapThing1(elements: List<CharSequence>): List<String> {
|
||||
return elements.<!CANDIDATE_CHOSEN_USING_OVERLOAD_RESOLUTION_BY_LAMBDA_ANNOTATION!>flatMap {
|
||||
<!TYPE_MISMATCH!>when (it) { // NullPointerException
|
||||
is String -> listOf("Yeah")
|
||||
else -> null
|
||||
}<!>
|
||||
}<!>
|
||||
}
|
||||
|
||||
fun doTheMapThing2(elements: List<CharSequence>): List<String> {
|
||||
return elements.<!CANDIDATE_CHOSEN_USING_OVERLOAD_RESOLUTION_BY_LAMBDA_ANNOTATION!>flatMap {
|
||||
<!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>if (it is String) listOf("Yeah") else null<!> // it's OK with `if`
|
||||
}<!>
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
public fun doTheMapThing1(/*0*/ elements: kotlin.collections.List<kotlin.CharSequence>): kotlin.collections.List<kotlin.String>
|
||||
public fun doTheMapThing2(/*0*/ elements: kotlin.collections.List<kotlin.CharSequence>): kotlin.collections.List<kotlin.String>
|
||||
Reference in New Issue
Block a user