[K2, MPP] Cleanup, remove unused FirDeclaration.actualForExpectMap

The concept of actual for expect map is broken and won't work in IDE
properly, since to fill such map we need to analyze all
dependant modules
This commit is contained in:
Simon Ogorodnik
2023-03-20 23:04:52 +01:00
committed by Space Team
parent 2302e14dd6
commit a5a3c1ff8d
2 changed files with 0 additions and 40 deletions
@@ -89,12 +89,5 @@ open class FirExpectActualMatcherTransformer(
scopeSession
) ?: mapOf()
memberDeclaration.expectForActual = expectForActualData
for ((compatibility, expectSymbols) in expectForActualData) {
if (compatibility.compatible) {
for (expectSymbol in expectSymbols) {
expectSymbol.fir.setActualForExpect(session, actualSymbol)
}
}
}
}
}
@@ -5,23 +5,19 @@
package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.SymbolInternals
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
import org.jetbrains.kotlin.resolve.multiplatform.ExpectActualCompatibility
import org.jetbrains.kotlin.resolve.multiplatform.compatible
import java.util.*
private object ExpectForActualAttributeKey : FirDeclarationDataKey()
private object ActualForExpectAttributeKey : FirDeclarationDataKey()
typealias ExpectForActualData = Map<ExpectActualCompatibility<FirBasedSymbol<*>>, List<FirBasedSymbol<*>>>
@SymbolInternals
var FirDeclaration.expectForActual: ExpectForActualData? by FirDeclarationDataRegistry.data(ExpectForActualAttributeKey)
private var FirDeclaration.actualForExpectMap: WeakHashMap<FirSession, FirBasedSymbol<*>>? by FirDeclarationDataRegistry.data(ActualForExpectAttributeKey)
fun FirFunctionSymbol<*>.getSingleCompatibleExpectForActualOrNull() =
(this as FirBasedSymbol<*>).getSingleCompatibleExpectForActualOrNull() as? FirFunctionSymbol<*>
@@ -47,32 +43,3 @@ val FirBasedSymbol<*>.expectForActual: ExpectForActualData?
return fir.expectForActual
}
private fun FirDeclaration.getOrCreateActualForExpectMap(): WeakHashMap<FirSession, FirBasedSymbol<*>> {
var map = actualForExpectMap
if (map != null) return map
synchronized(this) {
map = actualForExpectMap
if (map == null) {
map = WeakHashMap()
actualForExpectMap = map
}
}
return map!!
}
@SymbolInternals
fun FirDeclaration.getActualForExpect(useSiteSession: FirSession): FirBasedSymbol<*>? {
return actualForExpectMap?.get(useSiteSession)
}
fun FirBasedSymbol<*>.getActualForExpect(session: FirSession): FirBasedSymbol<*>? {
lazyResolveToPhase(FirResolvePhase.EXPECT_ACTUAL_MATCHING)
return fir.getActualForExpect(session)
}
@SymbolInternals
fun FirDeclaration.setActualForExpect(useSiteSession: FirSession, actualSymbol: FirBasedSymbol<*>) {
val map = getOrCreateActualForExpectMap()
map[useSiteSession] = actualSymbol
}