Shrink and split LVT records of variables according to their liveness

Otherwise, debugger will show uninitialized values of dead variables
after resume.
 #KT-16222
 #KT-28016 Fixed
 #KT-20571 Fixed
This commit is contained in:
Ilmir Usmanov
2020-07-22 19:18:16 +02:00
parent e5995f0c12
commit 70e91bd5db
9 changed files with 130 additions and 79 deletions
@@ -7558,6 +7558,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class Debug extends AbstractLightAnalysisModeTest {
@TestMetadata("debuggerMetadata_ir.kt")
public void ignoreDebuggerMetadata_ir() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/debug/debuggerMetadata_ir.kt");
}
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath);
}
@@ -7571,11 +7576,6 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
runTest("compiler/testData/codegen/box/coroutines/debug/debuggerMetadata.kt");
}
@TestMetadata("debuggerMetadata_ir.kt")
public void testDebuggerMetadata_ir() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/debug/debuggerMetadata_ir.kt");
}
@TestMetadata("elvisLineNumber.kt")
public void testElvisLineNumber() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/debug/elvisLineNumber.kt");