diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt index bb7726e176c..5e9fb82e0e1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirUnitExpression.kt @@ -16,15 +16,19 @@ 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.FirExpression +import org.jetbrains.kotlin.fir.expressions.FirReturnExpression import org.jetbrains.kotlin.fir.expressions.UnresolvedExpressionTypeAccess import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.constructClassLikeType -import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef import org.jetbrains.kotlin.fir.visitors.FirTransformer import org.jetbrains.kotlin.fir.visitors.FirVisitor import org.jetbrains.kotlin.fir.visitors.transformInplace import org.jetbrains.kotlin.name.StandardClassIds +/** + * A special kind of expression that can only appear inside [FirReturnExpression]. + * It denotes an empty `return` expression, which is different from explicit `return Unit`. + */ class FirUnitExpression @FirImplementationDetail constructor( override val source: KtSourceElement?, override var annotations: MutableOrEmptyList, diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt index 82989efecc2..06e9a4c04d5 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt @@ -371,8 +371,14 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() } impl(expression, "FirUnitExpression") { + kDoc( + """ + A special kind of expression that can only appear inside [${returnExpression.typeName}]. + It denotes an empty `return` expression, which is different from explicit `return Unit`. + """.trimIndent() + ) defaultBuiltInType("Unit") - additionalImports(implicitUnitTypeRefType) + additionalImports(returnExpression) publicImplementation() }