K1: report TYPE_MISMATCH for incorrect assignments in builder

#KT-54004 Fixed
This commit is contained in:
Mikhail Glukhikh
2022-10-07 12:54:43 +02:00
committed by Space Team
parent 0940707fd4
commit 0080f16cc2
5 changed files with 69 additions and 14 deletions
@@ -5,16 +5,15 @@ class Foo<T : Any> {
fun <T : Any> myBuilder(block: Foo<T>.() -> Unit) : Foo<T> = Foo<T>().apply(block)
fun main() {
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>myBuilder<!> {
<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!> = "some string"
}
fun main(arg: Any) {
val x = 57
val value = myBuilder {
doSmthng("one ")
a = 57
a = x
a = <!TYPE_MISMATCH!>57<!>
a = <!TYPE_MISMATCH!>x<!>
if (arg is String) {
a = arg
}
}
println(value.a?.count { it in 'l' .. 'q' })
}