[fir2ir] Add missing 'lazyResolveToPhase()' to FIR/IR builtins

This commit is contained in:
Yan Zhulanow
2023-07-25 03:13:08 +09:00
committed by Space Team
parent 8286ffd232
commit 82855fbf0f
@@ -14,9 +14,11 @@ import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.descriptors.DescriptorVisibility import org.jetbrains.kotlin.descriptors.DescriptorVisibility
import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor import org.jetbrains.kotlin.fir.descriptors.FirModuleDescriptor
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
import org.jetbrains.kotlin.ir.BuiltInOperatorNames import org.jetbrains.kotlin.ir.BuiltInOperatorNames
import org.jetbrains.kotlin.ir.IrBuiltIns import org.jetbrains.kotlin.ir.IrBuiltIns
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
@@ -732,8 +734,9 @@ class IrBuiltInsOverFir(
referenceClassByClassId(ClassId.topLevel(topLevelFqName)) referenceClassByClassId(ClassId.topLevel(topLevelFqName))
private fun referenceClassByClassId(classId: ClassId): IrClassSymbol? { private fun referenceClassByClassId(classId: ClassId): IrClassSymbol? {
val firSymbol = components.session.symbolProvider.getClassLikeSymbolByClassId(classId) ?: return null val firClassSymbol = components.session.symbolProvider.getClassLikeSymbolByClassId(classId) as? FirClassSymbol ?: return null
val firClassSymbol = firSymbol as? FirClassSymbol ?: return null firClassSymbol.lazyResolveToPhase(FirResolvePhase.STATUS)
return components.classifierStorage.getIrClassSymbol(firClassSymbol) return components.classifierStorage.getIrClassSymbol(firClassSymbol)
} }
@@ -1195,13 +1198,15 @@ class IrBuiltInsOverFir(
) )
} }
private fun findFunctions(packageName: FqName, name: Name): List<IrSimpleFunctionSymbol> = private fun findFunctions(packageName: FqName, name: Name): List<IrSimpleFunctionSymbol> {
components.session.symbolProvider.getTopLevelFunctionSymbols(packageName, name).mapNotNull { firOpSymbol -> return components.session.symbolProvider.getTopLevelFunctionSymbols(packageName, name)
components.declarationStorage.getIrFunctionSymbol(firOpSymbol) as? IrSimpleFunctionSymbol .onEach { it.lazyResolveToPhase(FirResolvePhase.STATUS) }
} .mapNotNull { components.declarationStorage.getIrFunctionSymbol(it) as? IrSimpleFunctionSymbol }
}
private fun findProperties(packageName: FqName, name: Name): List<IrPropertySymbol> = private fun findProperties(packageName: FqName, name: Name): List<IrPropertySymbol> {
components.session.symbolProvider.getTopLevelPropertySymbols(packageName, name).mapNotNull { firOpSymbol -> return components.session.symbolProvider.getTopLevelPropertySymbols(packageName, name)
components.declarationStorage.getIrPropertySymbol(firOpSymbol) as? IrPropertySymbol .onEach { it.lazyResolveToPhase(FirResolvePhase.STATUS) }
} .mapNotNull { components.declarationStorage.getIrPropertySymbol(it) as? IrPropertySymbol }
}
} }