K2: correctly set importedFromObjectOrStaticData for fields

#KT-59140 Fixed
#KT-58980 Fixed
This commit is contained in:
Mikhail Glukhikh
2023-06-16 15:22:43 +02:00
committed by Space Team
parent 18206210cf
commit 8983e3a218
13 changed files with 226 additions and 28 deletions
@@ -64,6 +64,7 @@ import kotlin.contracts.ExperimentalContracts
import kotlin.contracts.contract
import org.jetbrains.kotlin.analysis.api.fir.signatures.KtFirFunctionLikeSubstitutorBasedSignature
import org.jetbrains.kotlin.analysis.api.fir.signatures.KtFirVariableLikeSubstitutorBasedSignature
import org.jetbrains.kotlin.fir.scopes.impl.importedFromObjectOrStaticData
/**
* Maps FirElement to KtSymbol & ConeType to KtType, thread safe
@@ -334,6 +335,9 @@ internal class KtSymbolByFirBuilder constructor(
fun buildFieldSymbol(firSymbol: FirFieldSymbol): KtFirJavaFieldSymbol {
if (firSymbol.origin == FirDeclarationOrigin.ImportedFromObjectOrStatic) {
return buildFieldSymbol(firSymbol.fir.importedFromObjectOrStaticData!!.original.symbol)
}
checkRequirementForBuildingSymbol<KtFirJavaFieldSymbol>(firSymbol, firSymbol.fir.isJavaFieldOrSubstitutionOverrideOfJavaField())
return symbolsCache.cache(firSymbol) { KtFirJavaFieldSymbol(firSymbol, analysisSession) }
}