[FIR] Update FIR utilities
#KT-61367
This commit is contained in:
committed by
Space Team
parent
a49fdeb05b
commit
5d6affc38d
@@ -82,6 +82,7 @@ fun generateExplicitReceiverTemporaryVariable(
|
||||
}
|
||||
?.let { receiver ->
|
||||
// val <receiver> = x
|
||||
@OptIn(UnresolvedExpressionTypeAccess::class)
|
||||
generateTemporaryVariable(
|
||||
moduleData = session.moduleData,
|
||||
source = source,
|
||||
|
||||
@@ -1198,10 +1198,12 @@ class FirRenderer(
|
||||
}
|
||||
|
||||
override fun visitResolvedReifiedParameterReference(resolvedReifiedParameterReference: FirResolvedReifiedParameterReference) {
|
||||
@OptIn(UnresolvedExpressionTypeAccess::class)
|
||||
renderType(resolvedReifiedParameterReference.coneTypeOrNull)
|
||||
}
|
||||
|
||||
override fun visitInaccessibleReceiverExpression(inaccessibleReceiverExpression: FirInaccessibleReceiverExpression) {
|
||||
@OptIn(UnresolvedExpressionTypeAccess::class)
|
||||
renderType(inaccessibleReceiverExpression.coneTypeOrNull)
|
||||
visitElement(inaccessibleReceiverExpression)
|
||||
}
|
||||
|
||||
@@ -5,10 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.types
|
||||
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirConstExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirSmartCastExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitBuiltinTypeRef
|
||||
import org.jetbrains.kotlin.fir.utils.exceptions.withFirEntry
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
@@ -37,10 +34,17 @@ val FirTypeRef.coneType: ConeKotlinType
|
||||
val FirTypeRef.coneTypeOrNull: ConeKotlinType?
|
||||
get() = coneTypeSafe()
|
||||
|
||||
val FirExpression.resolvedType: ConeKotlinType get() = requireNotNull(coneTypeOrNull) { "Expected type to be resolved" }
|
||||
@OptIn(UnresolvedExpressionTypeAccess::class)
|
||||
val FirExpression.resolvedType: ConeKotlinType
|
||||
get() = coneTypeOrNull
|
||||
?: errorWithAttachment("Expected expression '${this::class.simpleName}' to be resolved") {
|
||||
withFirEntry("expression", this@resolvedType)
|
||||
}
|
||||
|
||||
@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
|
||||
|
||||
@RequiresOptIn(
|
||||
|
||||
Reference in New Issue
Block a user