85e6c90052
Elvis now is being resolved a bit differently and in case of inconsistent types, the while expression has error type, but no diagnostic is reported since the element has no valid source element When one sets the source https://github.com/JetBrains/kotlin/commit/817316cdc93457c1de7cf10c3b422e3a4b486e5b it brings back the issue KT-45989 that was effectively unresolved but hidden due to diagnostic loss ^KT-45989 Open
29 lines
791 B
Kotlin
Vendored
29 lines
791 B
Kotlin
Vendored
/*
|
|
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
|
*
|
|
* SPEC VERSION: 0.1-152
|
|
* PRIMARY LINKS: expressions, when-expression -> paragraph 2 -> sentence 1
|
|
* expressions, when-expression, exhaustive-when-expressions -> paragraph 2 -> sentence 1
|
|
* expressions, when-expression -> paragraph 9 -> sentence 1
|
|
* expressions, conditional-expression -> paragraph 4 -> sentence 1
|
|
* expressions, conditional-expression -> paragraph 5 -> sentence 1
|
|
*/
|
|
|
|
fun test1(): Int {
|
|
val x: String = if (true) {
|
|
when {
|
|
true -> Any()
|
|
else -> null
|
|
}
|
|
} else ""
|
|
return x.hashCode()
|
|
}
|
|
|
|
fun test2(): Int {
|
|
val x: String = when {
|
|
true -> Any()
|
|
else -> null
|
|
} ?: return 0
|
|
return x.hashCode()
|
|
}
|