Do not treat uninitialized value as a reason to retain boxing

See testData/simpleUnitializedMerge.kt
On exit from `if` we merge value in variable with slot 1 (x):
- from `if` body we get BoxedBasicValue
- from outer block we get UNITIALIZED_VALUE

So we just suppose `x` is unitialized after `if`
and there's no need to mark BoxedValue as unsafe to remove
because it's anyway can't be used after `if`

 #KT-6842 Fixed
This commit is contained in:
Denis Zharkov
2016-02-24 13:56:19 +03:00
parent 2f4b8dab25
commit 914447b7eb
9 changed files with 90 additions and 0 deletions
@@ -0,0 +1,9 @@
import kotlin.test.assertEquals
fun box(): String {
val result = (1..5).fold(0) { x, y -> x + y }
assertEquals(15, result)
return "OK"
}