Prohibit labeled returns inside kotlin.suspend argument lambdas

Probably, it would be more correct to skip such lambdas when resolving
the returns' references, but it'd be more complicated and still useless
since non-local returns are impossible in such lambdas
(relevant parameter is noinline)

 #KT-22900 Fixed
This commit is contained in:
Denis Zharkov
2018-02-19 14:14:09 +03:00
parent bc2e81a1e4
commit 5edfc0f5cd
8 changed files with 66 additions and 0 deletions
@@ -1374,6 +1374,12 @@ public class DiagnosticsTestWithStdLibGenerated extends AbstractDiagnosticsTestW
doTest(fileName);
}
@TestMetadata("returnLabelForBuiltInSuspend.kt")
public void testReturnLabelForBuiltInSuspend() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/coroutines/returnLabelForBuiltInSuspend.kt");
doTest(fileName);
}
@TestMetadata("suspendApplicability.kt")
public void testSuspendApplicability() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/coroutines/suspendApplicability.kt");
@@ -1374,6 +1374,12 @@ public class DiagnosticsTestWithStdLibUsingJavacGenerated extends AbstractDiagno
doTest(fileName);
}
@TestMetadata("returnLabelForBuiltInSuspend.kt")
public void testReturnLabelForBuiltInSuspend() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/coroutines/returnLabelForBuiltInSuspend.kt");
doTest(fileName);
}
@TestMetadata("suspendApplicability.kt")
public void testSuspendApplicability() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/coroutines/suspendApplicability.kt");