[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:
committed by
Space Team
parent
06684f207a
commit
1cc138431d
@@ -0,0 +1,20 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
|
||||
// FILE: a/A.java
|
||||
package a;
|
||||
|
||||
public class A {
|
||||
static final String X = "Fail";
|
||||
}
|
||||
|
||||
// FILE: B.java
|
||||
public class B extends a.A {
|
||||
private final String X = "OK";
|
||||
|
||||
public String get() { return X; }
|
||||
}
|
||||
|
||||
// FILE: box.kt
|
||||
class C : B()
|
||||
|
||||
fun box(): String = C().get()
|
||||
Reference in New Issue
Block a user