[FIR] Resolve statuses of supertypes for all non-source classes

Previously we forced computation only for java and precompiled classes,
  assuming, that binary class can not extend source class, but it's not
  true in two cases:
1. Classpath substitution: class with same name declared in library and
   the source (more rare case)
2. Metadata compilation: depends-on dependcies are passed in binary
   format, so `expect class` may be a binary one and corresponding
   `actual class` may be a source. So if some class in `common` module
   extend this expect class, actual class will be substituted instead of it

^KT-65669 Fixed
This commit is contained in:
Dmitriy Novozhilov
2024-02-14 08:42:59 +02:00
committed by Space Team
parent 9219a8f485
commit 84f0f6e099
22 changed files with 149 additions and 4 deletions
@@ -14745,6 +14745,12 @@ public class FirWasmJsCodegenBoxTestGenerated extends AbstractFirWasmJsCodegenBo
runTest("compiler/testData/codegen/box/fir/smartCastToInvisibleClassMember.kt");
}
@Test
@TestMetadata("sourceBinarySource.kt")
public void testSourceBinarySource() throws Exception {
runTest("compiler/testData/codegen/box/fir/sourceBinarySource.kt");
}
@Test
@TestMetadata("starProjectionLambdaNullReturn.kt")
public void testStarProjectionLambdaNullReturn() throws Exception {
@@ -14745,6 +14745,12 @@ public class K1WasmCodegenBoxTestGenerated extends AbstractK1WasmCodegenBoxTest
runTest("compiler/testData/codegen/box/fir/smartCastToInvisibleClassMember.kt");
}
@Test
@TestMetadata("sourceBinarySource.kt")
public void testSourceBinarySource() throws Exception {
runTest("compiler/testData/codegen/box/fir/sourceBinarySource.kt");
}
@Test
@TestMetadata("starProjectionLambdaNullReturn.kt")
public void testStarProjectionLambdaNullReturn() throws Exception {