396b226462
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
32 lines
1012 B
Kotlin
Vendored
32 lines
1012 B
Kotlin
Vendored
// !DIAGNOSTICS: -DEBUG_INFO_SMARTCAST
|
|
fun bar(x: Int) = x + 1
|
|
|
|
fun foo() {
|
|
val x: Int? = null
|
|
|
|
if (x != null) {
|
|
bar(x)
|
|
if (<!SENSELESS_COMPARISON!>x != null<!>) {
|
|
bar(x)
|
|
if (1 < 2) bar(x)
|
|
if (1 > 2) bar(x)
|
|
}
|
|
if (<!SENSELESS_COMPARISON!>x == null<!>) {
|
|
bar(x)
|
|
}
|
|
if (<!SENSELESS_COMPARISON!>x == null<!>) bar(x) else bar(x)
|
|
bar(bar(x))
|
|
} else if (<!SENSELESS_COMPARISON!><!DEBUG_INFO_CONSTANT!>x<!> == null<!>) {
|
|
bar(<!DEBUG_INFO_CONSTANT, TYPE_MISMATCH!>x<!>)
|
|
if (<!SENSELESS_COMPARISON!><!DEBUG_INFO_CONSTANT!>x<!> != null<!>) {
|
|
bar(x)
|
|
if (<!SENSELESS_COMPARISON!>x == null<!>) bar(x)
|
|
if (<!SENSELESS_COMPARISON!>x == null<!>) bar(x) else bar(x)
|
|
bar(bar(x) + bar(x))
|
|
} else if (<!SENSELESS_COMPARISON!><!DEBUG_INFO_CONSTANT!>x<!> == null<!>) {
|
|
bar(<!DEBUG_INFO_CONSTANT, TYPE_MISMATCH!>x<!>)
|
|
}
|
|
}
|
|
|
|
}
|