7e2f15f532
The logic should clear back aliases as well. To ensure all back aliases don't lose any information, statements on the original variable are copied over to its aliases.
21 lines
401 B
Kotlin
Vendored
21 lines
401 B
Kotlin
Vendored
fun foo(arg: Int?): Int {
|
|
var i = arg
|
|
if (i != null && i++ == 5) {
|
|
return i-- + i
|
|
}
|
|
return 0
|
|
}
|
|
|
|
operator fun Long?.inc() = this?.let { it + 1 }
|
|
|
|
fun bar(arg: Long?): Long {
|
|
var i = arg
|
|
if (i++ == 5L) {
|
|
return i<!UNSAFE_CALL!>--<!> <!UNSAFE_OPERATOR_CALL!>+<!> i
|
|
}
|
|
if (i++ == 7L) {
|
|
return i++ <!UNSAFE_OPERATOR_CALL!>+<!> i
|
|
}
|
|
return 0L
|
|
}
|