[Fir2IR] Get rid of simple symbol table usages

We have two sources of truth in Fir2Ir - declaration storages,
which maps fir to ir symbols and symbolTable which maps
IdSignature to ir symbol.

The long-term goal is to have only one - declaration storages. This
commit goes to this goal by removing all symbolTable usages that are
straightforward to remove, i.e., all except:

1. classes as there is some code, that uses signature inside ClassSymbol
2. functions/properties as sometimes declaration storage fails to match
symbols correctly (i.e. for generated data class members)
3. type parameters, as we need to remove functions first.

As a side effect, it fixes some of the signature clash cases on valid
code, as we no longer rely on signature uniqueness, except cases
mentioned above.

^KT-65274 Fixed
^KT-64990
This commit is contained in:
Pavel Kunyavskiy
2024-02-05 10:42:07 +01:00
committed by Space Team
parent 06684f207a
commit 1cc138431d
15 changed files with 89 additions and 37 deletions
@@ -16114,6 +16114,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
runTest("compiler/testData/codegen/box/fakeOverride/kt65116.kt");
}
@TestMetadata("kt65274.kt")
public void testKt65274() throws Exception {
runTest("compiler/testData/codegen/box/fakeOverride/kt65274.kt");
}
@TestMetadata("methodOfAnyFromInterface.kt")
public void testMethodOfAnyFromInterface() throws Exception {
runTest("compiler/testData/codegen/box/fakeOverride/methodOfAnyFromInterface.kt");