[NI] Reanalyze coroutine-block if there is inapplicable call

It's not clear how one should rollback _all_ resolution results if
 there is inapplicable call. Ideally, such calls should not be available
 in coroutine block but for now, to have backward compatibility, we'll
 just reanalyze coroutine block as a usual lambda if there is at least
 one such call.

 As a result, also remove diagnostic about non-applicable call as it
 become useless with current reanalysis

 #KT-37061 Fixed
 #KT-32097 Fixed
 #KT-32203 Fixed
 #KT-35306 Fixed
 #KT-36202 Fixed
 #KT-36220 Fixed
 #KT-32654 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2020-02-27 19:06:14 +03:00
parent aab8555d65
commit 14f7529c1b
27 changed files with 641 additions and 127 deletions
@@ -1967,6 +1967,16 @@ public class DiagnosticsTestWithStdLibGenerated extends AbstractDiagnosticsTestW
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt15516.kt");
}
@TestMetadata("kt32097.kt")
public void testKt32097() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt32097.kt");
}
@TestMetadata("kt32203.kt")
public void testKt32203() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt32203.kt");
}
@TestMetadata("kt32271.kt")
public void testKt32271() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt32271.kt");
@@ -1977,11 +1987,26 @@ public class DiagnosticsTestWithStdLibGenerated extends AbstractDiagnosticsTestW
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt33542.kt");
}
@TestMetadata("kt35306.kt")
public void testKt35306() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt35306.kt");
}
@TestMetadata("kt35684.kt")
public void testKt35684() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt35684.kt");
}
@TestMetadata("kt36202.kt")
public void testKt36202() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt36202.kt");
}
@TestMetadata("kt36220.kt")
public void testKt36220() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt36220.kt");
}
@TestMetadata("nestedLambdaInferenceWithListMap.kt")
public void testNestedLambdaInferenceWithListMap() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/nestedLambdaInferenceWithListMap.kt");
@@ -1967,6 +1967,16 @@ public class DiagnosticsTestWithStdLibUsingJavacGenerated extends AbstractDiagno
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt15516.kt");
}
@TestMetadata("kt32097.kt")
public void testKt32097() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt32097.kt");
}
@TestMetadata("kt32203.kt")
public void testKt32203() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt32203.kt");
}
@TestMetadata("kt32271.kt")
public void testKt32271() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt32271.kt");
@@ -1977,11 +1987,26 @@ public class DiagnosticsTestWithStdLibUsingJavacGenerated extends AbstractDiagno
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt33542.kt");
}
@TestMetadata("kt35306.kt")
public void testKt35306() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt35306.kt");
}
@TestMetadata("kt35684.kt")
public void testKt35684() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt35684.kt");
}
@TestMetadata("kt36202.kt")
public void testKt36202() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt36202.kt");
}
@TestMetadata("kt36220.kt")
public void testKt36220() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt36220.kt");
}
@TestMetadata("nestedLambdaInferenceWithListMap.kt")
public void testNestedLambdaInferenceWithListMap() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/nestedLambdaInferenceWithListMap.kt");