Generate return when generating continuation class for expression body

Otherwise, the function will return Unit instead of correct value.
 #KT-46007 Fixed
This commit is contained in:
Ilmir Usmanov
2021-04-14 17:47:50 +02:00
committed by TeamCityServer
parent 539d3e5df2
commit 1c48fb28db
13 changed files with 399 additions and 25 deletions
@@ -7645,11 +7645,6 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
runTest("compiler/testData/codegen/box/coroutines/featureIntersection/interfaceMethodWithBodyGeneric.kt");
}
@TestMetadata("jvmDefault.kt")
public void testJvmDefault() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/featureIntersection/jvmDefault.kt");
}
@TestMetadata("overrideInInlineClass.kt")
public void testOverrideInInlineClass() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/featureIntersection/overrideInInlineClass.kt");
@@ -7792,6 +7787,57 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
}
}
@TestMetadata("compiler/testData/codegen/box/coroutines/featureIntersection/jvmDefault")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class JvmDefault extends AbstractLightAnalysisModeTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath);
}
@TestMetadata("all.kt")
public void testAll() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/featureIntersection/jvmDefault/all.kt");
}
public void testAllFilesPresentInJvmDefault() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/coroutines/featureIntersection/jvmDefault"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true);
}
@TestMetadata("compiler/testData/codegen/box/coroutines/featureIntersection/jvmDefault/kt46007")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class Kt46007 extends AbstractLightAnalysisModeTest {
@TestMetadata("all-compatibility.kt")
public void ignoreAll_compatibility() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/featureIntersection/jvmDefault/kt46007/all-compatibility.kt");
}
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath);
}
@TestMetadata("all.kt")
public void testAll() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/featureIntersection/jvmDefault/kt46007/all.kt");
}
public void testAllFilesPresentInKt46007() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/coroutines/featureIntersection/jvmDefault/kt46007"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true);
}
@TestMetadata("disable.kt")
public void testDisable() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/featureIntersection/jvmDefault/kt46007/disable.kt");
}
@TestMetadata("enable.kt")
public void testEnable() throws Exception {
runTest("compiler/testData/codegen/box/coroutines/featureIntersection/jvmDefault/kt46007/enable.kt");
}
}
}
@TestMetadata("compiler/testData/codegen/box/coroutines/featureIntersection/tailrec")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)