[FIR] Inline FirExpression.coneTypeUnsafe

#KT-61367
This commit is contained in:
Kirill Rakhman
2023-09-12 17:22:36 +02:00
committed by Space Team
parent 126f2c9440
commit a4fff7c7c0
3 changed files with 4 additions and 7 deletions
@@ -23,8 +23,8 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirArrayOfCall
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.coneType
import org.jetbrains.kotlin.fir.types.coneTypeUnsafe
import org.jetbrains.kotlin.fir.types.resolvedType
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor
import org.jetbrains.kotlin.types.ConstantValueKind
@@ -120,7 +120,7 @@ internal object FirToConstantValueTransformer : FirDefaultVisitor<ConstantValue<
getClassCall: FirGetClassCall,
data: FirToConstantValueTransformerData
): ConstantValue<*>? {
return create(getClassCall.argument.coneTypeUnsafe())
return create(getClassCall.argument.resolvedType)
}
override fun visitQualifiedAccessExpression(
@@ -263,7 +263,7 @@ internal object FirToConstantValueChecker : FirDefaultVisitor<Boolean, FirSessio
override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: FirSession): Boolean = true
override fun visitGetClassCall(getClassCall: FirGetClassCall, data: FirSession): Boolean {
return create(getClassCall.argument.coneTypeUnsafe()) != null
return create(getClassCall.argument.resolvedType) != null
}
override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: FirSession): Boolean {
@@ -284,7 +284,7 @@ private fun FirCallableSymbol<*>.toSymbolForCall(
fun FirConstExpression<*>.getIrConstKind(): IrConstKind<*> = when (kind) {
ConstantValueKind.IntegerLiteral, ConstantValueKind.UnsignedIntegerLiteral -> {
val type = coneTypeUnsafe<ConeIntegerLiteralType>()
val type = resolvedType as ConeIntegerLiteralType
type.getApproximatedType().toConstKind()!!.toIrConstKind()
}
@@ -44,9 +44,6 @@ val FirExpression.resolvedType: ConeKotlinType
@UnresolvedExpressionTypeAccess
inline fun <reified T : ConeKotlinType> FirExpression.coneTypeSafe(): T? = (coneTypeOrNull as? T)
@OptIn(UnresolvedExpressionTypeAccess::class)
inline fun <reified T : ConeKotlinType> FirExpression.coneTypeUnsafe(): T = coneTypeOrNull as T
@OptIn(UnresolvedExpressionTypeAccess::class)
val FirExpression.isResolved: Boolean get() = coneTypeOrNull != null