[NI] Soften restictions on using Nothing as proper constraint for full call completion

Consider lower `Nothing` constraint non-proper only if there is a dependant not analyzed postponed atom.
Early completion to `Nothing` provides data flow info for smart casts.

KT-35668 Fixed
This commit is contained in:
Pavel Kirpichenkov
2020-01-22 15:46:33 +03:00
parent f1d9177112
commit 78c9bbcc0d
13 changed files with 234 additions and 24 deletions
@@ -10582,6 +10582,11 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirOldFronte
runTest("compiler/testData/diagnostics/tests/inference/completion/kt33166.kt");
}
@TestMetadata("lambdaWithVariableAndNothing.kt")
public void testLambdaWithVariableAndNothing() throws Exception {
runTest("compiler/testData/diagnostics/tests/inference/completion/lambdaWithVariableAndNothing.kt");
}
@TestMetadata("partialForIlt.kt")
public void testPartialForIlt() throws Exception {
runTest("compiler/testData/diagnostics/tests/inference/completion/partialForIlt.kt");
@@ -17846,6 +17851,11 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirOldFronte
runTest("compiler/testData/diagnostics/tests/regressions/kt3535.kt");
}
@TestMetadata("kt35668.kt")
public void testKt35668() throws Exception {
runTest("compiler/testData/diagnostics/tests/regressions/kt35668.kt");
}
@TestMetadata("kt3647.kt")
public void testKt3647() throws Exception {
runTest("compiler/testData/diagnostics/tests/regressions/kt3647.kt");