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:
@@ -376,6 +376,12 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("kt6842.kt")
|
||||
public void testKt6842() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/boxingOptimization/kt6842.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("kt7224.kt")
|
||||
public void testKt7224() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/boxingOptimization/kt7224.kt");
|
||||
@@ -412,6 +418,12 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("simpleUninitializedMerge.kt")
|
||||
public void testSimpleUninitializedMerge() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/boxingOptimization/simpleUninitializedMerge.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("unsafeRemoving.kt")
|
||||
public void testUnsafeRemoving() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/bytecodeText/boxingOptimization/unsafeRemoving.kt");
|
||||
|
||||
Reference in New Issue
Block a user