[NI] Fix common supertype of types with error supertypes

Enable check for error supertypes during CST calculation in classic type system context.
Cyclic upper bound + known type parameters of superclasses may create non-error types
with error supertypes. Such types don't have common constructors with other normal types
and cause assertion errors during intersection.

^KT-36951 Fixed
This commit is contained in:
Pavel Kirpichenkov
2020-07-20 14:05:58 +03:00
parent 95cc35f22e
commit 710659324c
14 changed files with 127 additions and 5 deletions
@@ -10109,6 +10109,11 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirOldFronte
runTest("compiler/testData/diagnostics/tests/inference/commonSuperTypeOfErrorTypes.kt");
}
@TestMetadata("commonSuperTypeOfTypesWithErrorSupertypes.kt")
public void testCommonSuperTypeOfTypesWithErrorSupertypes() throws Exception {
runTest("compiler/testData/diagnostics/tests/inference/commonSuperTypeOfTypesWithErrorSupertypes.kt");
}
@TestMetadata("compatibilityResolveWhenVariableHasComplexIntersectionType.kt")
public void testCompatibilityResolveWhenVariableHasComplexIntersectionType() throws Exception {
runTest("compiler/testData/diagnostics/tests/inference/compatibilityResolveWhenVariableHasComplexIntersectionType.kt");
@@ -2910,6 +2910,11 @@ public class FirOldFrontendDiagnosticsTestWithStdlibGenerated extends AbstractFi
runTest("compiler/testData/diagnostics/testsWithStdLib/inference/kt36249.kt");
}
@TestMetadata("kt36951.kt")
public void testKt36951() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/inference/kt36951.kt");
}
@TestMetadata("kt37627.kt")
public void testKt37627() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/inference/kt37627.kt");