FIR LC: use optimal type mapping mode for return type

This commit is contained in:
Jinseong Jeon
2021-11-04 00:17:01 -07:00
committed by Ilya Kirillov
parent d3c34fa200
commit 0da9ef873a
8 changed files with 43 additions and 8 deletions
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.fir.resolve.toSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.load.kotlin.TypeMappingMode
import org.jetbrains.kotlin.load.kotlin.getOptimalModeForReturnType
import org.jetbrains.kotlin.load.kotlin.getOptimalModeForValueParameter
import org.jetbrains.kotlin.name.SpecialNames
import org.jetbrains.kotlin.psi
@@ -59,6 +60,11 @@ internal class KtFirPsiTypeProvider(
type.coneType.asPsiType(rootModuleSession, analysisSession.firResolveState, mode, useSitePosition)
}
override fun getOptimalModeForReturnType(type: KtType, isAnnotationMethod: Boolean): TypeMappingMode = withValidityAssertion {
require(type is KtFirType)
rootModuleSession.jvmTypeMapper.typeContext.getOptimalModeForReturnType(type.coneType, isAnnotationMethod)
}
override fun getOptimalModeForValueParameter(type: KtType): TypeMappingMode = withValidityAssertion {
require(type is KtFirType)
rootModuleSession.jvmTypeMapper.typeContext.getOptimalModeForValueParameter(type.coneType)