[FIR] Inline FirExpression.coneTypeUnsafe
#KT-61367
This commit is contained in:
committed by
Space Team
parent
126f2c9440
commit
a4fff7c7c0
+3
-3
@@ -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.FirConstructorSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
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.coneType
|
||||||
import org.jetbrains.kotlin.fir.types.coneTypeUnsafe
|
|
||||||
import org.jetbrains.kotlin.fir.types.resolvedType
|
import org.jetbrains.kotlin.fir.types.resolvedType
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor
|
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor
|
||||||
import org.jetbrains.kotlin.types.ConstantValueKind
|
import org.jetbrains.kotlin.types.ConstantValueKind
|
||||||
@@ -120,7 +120,7 @@ internal object FirToConstantValueTransformer : FirDefaultVisitor<ConstantValue<
|
|||||||
getClassCall: FirGetClassCall,
|
getClassCall: FirGetClassCall,
|
||||||
data: FirToConstantValueTransformerData
|
data: FirToConstantValueTransformerData
|
||||||
): ConstantValue<*>? {
|
): ConstantValue<*>? {
|
||||||
return create(getClassCall.argument.coneTypeUnsafe())
|
return create(getClassCall.argument.resolvedType)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitQualifiedAccessExpression(
|
override fun visitQualifiedAccessExpression(
|
||||||
@@ -263,7 +263,7 @@ internal object FirToConstantValueChecker : FirDefaultVisitor<Boolean, FirSessio
|
|||||||
override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: FirSession): Boolean = true
|
override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: FirSession): Boolean = true
|
||||||
|
|
||||||
override fun visitGetClassCall(getClassCall: FirGetClassCall, data: FirSession): Boolean {
|
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 {
|
override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: FirSession): Boolean {
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ private fun FirCallableSymbol<*>.toSymbolForCall(
|
|||||||
|
|
||||||
fun FirConstExpression<*>.getIrConstKind(): IrConstKind<*> = when (kind) {
|
fun FirConstExpression<*>.getIrConstKind(): IrConstKind<*> = when (kind) {
|
||||||
ConstantValueKind.IntegerLiteral, ConstantValueKind.UnsignedIntegerLiteral -> {
|
ConstantValueKind.IntegerLiteral, ConstantValueKind.UnsignedIntegerLiteral -> {
|
||||||
val type = coneTypeUnsafe<ConeIntegerLiteralType>()
|
val type = resolvedType as ConeIntegerLiteralType
|
||||||
type.getApproximatedType().toConstKind()!!.toIrConstKind()
|
type.getApproximatedType().toConstKind()!!.toIrConstKind()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -44,9 +44,6 @@ val FirExpression.resolvedType: ConeKotlinType
|
|||||||
@UnresolvedExpressionTypeAccess
|
@UnresolvedExpressionTypeAccess
|
||||||
inline fun <reified T : ConeKotlinType> FirExpression.coneTypeSafe(): T? = (coneTypeOrNull as? T)
|
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)
|
@OptIn(UnresolvedExpressionTypeAccess::class)
|
||||||
val FirExpression.isResolved: Boolean get() = coneTypeOrNull != null
|
val FirExpression.isResolved: Boolean get() = coneTypeOrNull != null
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user