[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
@@ -16645,6 +16645,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
runTest("compiler/testData/codegen/box/fir/smartCastToInvisibleClassMember.kt");
}
@TestMetadata("sourceBinarySource.kt")
public void testSourceBinarySource() throws Exception {
runTest("compiler/testData/codegen/box/fir/sourceBinarySource.kt");
}
@TestMetadata("StackOverflowInAnnotationLoader.kt")
public void testStackOverflowInAnnotationLoader() throws Exception {
runTest("compiler/testData/codegen/box/fir/StackOverflowInAnnotationLoader.kt");