[NI] Restore missing smart casts after another smart cast in call

Expression type serves as a part of a key for retrieving smart cast info.
Rewriting expression type with SmartCastManager leads to incorrect processing of following smartcasts for same expression, therefore it was removed.

KT-32507 Fixed
KT-32358 Fixed
This commit is contained in:
Pavel Kirpichenkov
2019-12-26 16:14:52 +03:00
parent d3de2d419b
commit 396b226462
13 changed files with 41 additions and 17 deletions
@@ -0,0 +1,7 @@
// !LANGUAGE: +NewInference
fun foo(bar: Any?): Int {
bar as String?
bar ?: throw IllegalStateException()
return bar.length
}
@@ -0,0 +1,7 @@
// !LANGUAGE: +NewInference
fun foo(bar: Any?): Int {
bar as String?
<!DEBUG_INFO_SMARTCAST!>bar<!> ?: throw IllegalStateException()
return <!DEBUG_INFO_SMARTCAST!>bar<!>.length
}
@@ -0,0 +1,3 @@
package
public fun foo(/*0*/ bar: kotlin.Any?): kotlin.Int