diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirConstExpressionBuilder.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirConstExpressionBuilder.kt index dce43602bd2..1b7f623b59b 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirConstExpressionBuilder.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirConstExpressionBuilder.kt @@ -9,11 +9,13 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirConstExpression +import org.jetbrains.kotlin.fir.expressions.UnresolvedExpressionTypeAccess import org.jetbrains.kotlin.fir.expressions.impl.FirConstExpressionImpl import org.jetbrains.kotlin.fir.types.constructClassLikeType import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.types.ConstantValueKind +@OptIn(UnresolvedExpressionTypeAccess::class) fun buildConstExpression( source: KtSourceElement?, kind: ConstantValueKind, diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirAnonymousFunctionExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirAnonymousFunctionExpressionImpl.kt index 343477a9a9a..68919043cdb 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirAnonymousFunctionExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirAnonymousFunctionExpressionImpl.kt @@ -9,16 +9,19 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnonymousFunctionExpression +import org.jetbrains.kotlin.fir.expressions.UnresolvedExpressionTypeAccess import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.coneTypeOrNull import org.jetbrains.kotlin.fir.visitors.FirTransformer import org.jetbrains.kotlin.fir.visitors.FirVisitor import org.jetbrains.kotlin.utils.addToStdlib.shouldNotBeCalled +@OptIn(UnresolvedExpressionTypeAccess::class) internal class FirAnonymousFunctionExpressionImpl( override val source: KtSourceElement?, override var anonymousFunction: FirAnonymousFunction ) : FirAnonymousFunctionExpression() { + @UnresolvedExpressionTypeAccess override val coneTypeOrNull: ConeKotlinType? get() = anonymousFunction.typeRef.coneTypeOrNull diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirAnonymousObjectExpressionImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirAnonymousObjectExpressionImpl.kt index fb69cd0631b..3578fbb0c91 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirAnonymousObjectExpressionImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirAnonymousObjectExpressionImpl.kt @@ -9,13 +9,16 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnonymousObjectExpression +import org.jetbrains.kotlin.fir.expressions.UnresolvedExpressionTypeAccess import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.FirTransformer import org.jetbrains.kotlin.fir.visitors.FirVisitor +@OptIn(UnresolvedExpressionTypeAccess::class) internal class FirAnonymousObjectExpressionImpl( override val source: KtSourceElement?, + @property:UnresolvedExpressionTypeAccess override var coneTypeOrNull: ConeKotlinType?, override var anonymousObject: FirAnonymousObject, ) : FirAnonymousObjectExpression() { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirContractCallBlock.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirContractCallBlock.kt index 7fff645c1e7..d9851c8f7d0 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirContractCallBlock.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirContractCallBlock.kt @@ -10,10 +10,7 @@ import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fakeElement import org.jetbrains.kotlin.fir.MutableOrEmptyList import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty -import org.jetbrains.kotlin.fir.expressions.FirAnnotation -import org.jetbrains.kotlin.fir.expressions.FirBlock -import org.jetbrains.kotlin.fir.expressions.FirFunctionCall -import org.jetbrains.kotlin.fir.expressions.FirStatement +import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImplWithoutSource import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -22,6 +19,7 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitor import org.jetbrains.kotlin.fir.visitors.transformInplace import org.jetbrains.kotlin.fir.visitors.transformSingle +@OptIn(UnresolvedExpressionTypeAccess::class) class FirContractCallBlock(var call: FirFunctionCall) : FirBlock() { override val source: KtSourceElement? get() = call.source?.fakeElement(KtFakeSourceElementKind.ContractBlock) @@ -31,6 +29,8 @@ class FirContractCallBlock(var call: FirFunctionCall) : FirBlock() { override var annotations: MutableOrEmptyList = MutableOrEmptyList.empty() + + @UnresolvedExpressionTypeAccess override var coneTypeOrNull: ConeKotlinType? = null override fun acceptChildren(visitor: FirVisitor, data: D) { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirSingleExpressionBlock.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirSingleExpressionBlock.kt index dce6826aa0b..301fc500b28 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirSingleExpressionBlock.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirSingleExpressionBlock.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.builder.toMutableOrEmpty import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirBlock import org.jetbrains.kotlin.fir.expressions.FirStatement +import org.jetbrains.kotlin.fir.expressions.UnresolvedExpressionTypeAccess import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImplWithoutSource import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -21,6 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitor import org.jetbrains.kotlin.fir.visitors.transformInplace import org.jetbrains.kotlin.fir.visitors.transformSingle +@OptIn(UnresolvedExpressionTypeAccess::class) class FirSingleExpressionBlock( var statement: FirStatement ) : FirBlock() { @@ -28,6 +30,8 @@ class FirSingleExpressionBlock( get() = statement.source?.fakeElement(KtFakeSourceElementKind.SingleExpressionBlock) override var annotations: MutableOrEmptyList = MutableOrEmptyList.empty() override val statements: List get() = listOf(statement) + + @UnresolvedExpressionTypeAccess override var coneTypeOrNull: ConeKotlinType? = null override fun acceptChildren(visitor: FirVisitor, data: D) { @@ -44,6 +48,7 @@ class FirSingleExpressionBlock( override fun replaceConeTypeOrNull(newConeTypeOrNull: ConeKotlinType?) { coneTypeOrNull = newConeTypeOrNull } + override fun transformStatements(transformer: FirTransformer, data: D): FirBlock { statement = statement.transformSingle(transformer, data) return this