Files
kotlin-fork/compiler/testData/diagnostics/tests/smartCasts/smartCastOnWhen.kt
T
Dmitry Petrov f371e67ce8 PatternMatchingTypingVisitor:
rewrite type inference for 'when' using special constructs.
This fixes several type inference issues for 'when':
KT-9929, KT-9972, KT-10439, KT-10463
along with some other diagnostics-related issues.
2016-01-22 10:41:55 +03:00

21 lines
444 B
Kotlin
Vendored

// Smart casts on complex expressions
fun baz(s: String?): Int {
if (s == null) return 0
return when(<!DEBUG_INFO_SMARTCAST!>s<!>) {
"abc" -> <!DEBUG_INFO_SMARTCAST!>s<!>
else -> "xyz"
}.length
}
var ss: String? = null
fun bar(): Int {
if (ss == null) return 0
// ss cannot be smart casted, so an error here
return when(ss) {
"abc" -> ss
else -> "xyz"
}<!UNSAFE_CALL!>.<!>length
}