diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAssignmentOperatorStatement.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAssignmentOperatorStatement.kt new file mode 100644 index 00000000000..538d1911d68 --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirAssignmentOperatorStatement.kt @@ -0,0 +1,31 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.expressions + +import org.jetbrains.kotlin.fir.FirPureAbstractElement +import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.visitors.* + +/* + * This file was generated automatically + * DO NOT MODIFY IT MANUALLY + */ + +abstract class FirAssignmentOperatorStatement : FirPureAbstractElement(), FirStatement { + abstract override val source: FirSourceElement? + abstract override val annotations: List + abstract val operation: FirOperation + abstract val leftArgument: FirExpression + abstract val rightArgument: FirExpression + + override fun accept(visitor: FirVisitor, data: D): R = visitor.visitAssignmentOperatorStatement(this, data) + + abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirAssignmentOperatorStatement + + abstract fun transformLeftArgument(transformer: FirTransformer, data: D): FirAssignmentOperatorStatement + + abstract fun transformRightArgument(transformer: FirTransformer, data: D): FirAssignmentOperatorStatement +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirEqualityOperatorCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirEqualityOperatorCall.kt new file mode 100644 index 00000000000..72a3ec19244 --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirEqualityOperatorCall.kt @@ -0,0 +1,31 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.expressions + +import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.types.FirTypeRef +import org.jetbrains.kotlin.fir.visitors.* + +/* + * This file was generated automatically + * DO NOT MODIFY IT MANUALLY + */ + +abstract class FirEqualityOperatorCall : FirExpression(), FirCall { + abstract override val source: FirSourceElement? + abstract override val typeRef: FirTypeRef + abstract override val annotations: List + abstract override val argumentList: FirArgumentList + abstract val operation: FirOperation + + override fun accept(visitor: FirVisitor, data: D): R = visitor.visitEqualityOperatorCall(this, data) + + abstract override fun replaceTypeRef(newTypeRef: FirTypeRef) + + abstract override fun replaceArgumentList(newArgumentList: FirArgumentList) + + abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirEqualityOperatorCall +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAssignmentOperatorStatementBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAssignmentOperatorStatementBuilder.kt new file mode 100644 index 00000000000..5d9542895b6 --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAssignmentOperatorStatementBuilder.kt @@ -0,0 +1,50 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.expressions.builder + +import kotlin.contracts.* +import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder +import org.jetbrains.kotlin.fir.builder.FirBuilderDsl +import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall +import org.jetbrains.kotlin.fir.expressions.FirAssignmentOperatorStatement +import org.jetbrains.kotlin.fir.expressions.FirExpression +import org.jetbrains.kotlin.fir.expressions.FirOperation +import org.jetbrains.kotlin.fir.expressions.impl.FirAssignmentOperatorStatementImpl +import org.jetbrains.kotlin.fir.visitors.* + +/* + * This file was generated automatically + * DO NOT MODIFY IT MANUALLY + */ + +@FirBuilderDsl +class FirAssignmentOperatorStatementBuilder : FirAnnotationContainerBuilder { + override var source: FirSourceElement? = null + override val annotations: MutableList = mutableListOf() + lateinit var operation: FirOperation + lateinit var leftArgument: FirExpression + lateinit var rightArgument: FirExpression + + override fun build(): FirAssignmentOperatorStatement { + return FirAssignmentOperatorStatementImpl( + source, + annotations, + operation, + leftArgument, + rightArgument, + ) + } + +} + +@OptIn(ExperimentalContracts::class) +inline fun buildAssignmentOperatorStatement(init: FirAssignmentOperatorStatementBuilder.() -> Unit): FirAssignmentOperatorStatement { + contract { + callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE) + } + return FirAssignmentOperatorStatementBuilder().apply(init).build() +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirEqualityOperatorCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirEqualityOperatorCallBuilder.kt new file mode 100644 index 00000000000..851637d3972 --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirEqualityOperatorCallBuilder.kt @@ -0,0 +1,58 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.expressions.builder + +import kotlin.contracts.* +import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder +import org.jetbrains.kotlin.fir.builder.FirBuilderDsl +import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall +import org.jetbrains.kotlin.fir.expressions.FirArgumentList +import org.jetbrains.kotlin.fir.expressions.FirEqualityOperatorCall +import org.jetbrains.kotlin.fir.expressions.FirOperation +import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder +import org.jetbrains.kotlin.fir.expressions.impl.FirEqualityOperatorCallImpl +import org.jetbrains.kotlin.fir.types.FirTypeRef +import org.jetbrains.kotlin.fir.types.impl.FirImplicitBooleanTypeRef +import org.jetbrains.kotlin.fir.visitors.* + +/* + * This file was generated automatically + * DO NOT MODIFY IT MANUALLY + */ + +@FirBuilderDsl +class FirEqualityOperatorCallBuilder : FirAnnotationContainerBuilder, FirExpressionBuilder { + override var source: FirSourceElement? = null + override val annotations: MutableList = mutableListOf() + lateinit var argumentList: FirArgumentList + lateinit var operation: FirOperation + + override fun build(): FirEqualityOperatorCall { + return FirEqualityOperatorCallImpl( + source, + annotations, + argumentList, + operation, + ) + } + + + @Deprecated("Modification of 'typeRef' has no impact for FirEqualityOperatorCallBuilder", level = DeprecationLevel.HIDDEN) + override var typeRef: FirTypeRef + get() = throw IllegalStateException() + set(value) { + throw IllegalStateException() + } +} + +@OptIn(ExperimentalContracts::class) +inline fun buildEqualityOperatorCall(init: FirEqualityOperatorCallBuilder.() -> Unit): FirEqualityOperatorCall { + contract { + callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE) + } + return FirEqualityOperatorCallBuilder().apply(init).build() +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirOperatorCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirOperatorCallBuilder.kt index 59b9f0814b5..ec18b5ebd93 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirOperatorCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirOperatorCallBuilder.kt @@ -17,7 +17,6 @@ import org.jetbrains.kotlin.fir.expressions.builder.FirCallBuilder import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder import org.jetbrains.kotlin.fir.expressions.impl.FirOperatorCallImpl import org.jetbrains.kotlin.fir.types.FirTypeRef -import org.jetbrains.kotlin.fir.types.impl.FirImplicitBooleanTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl import org.jetbrains.kotlin.fir.visitors.* diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAssignmentOperatorStatementImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAssignmentOperatorStatementImpl.kt new file mode 100644 index 00000000000..360d9d48b52 --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirAssignmentOperatorStatementImpl.kt @@ -0,0 +1,54 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.expressions.impl + +import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall +import org.jetbrains.kotlin.fir.expressions.FirAssignmentOperatorStatement +import org.jetbrains.kotlin.fir.expressions.FirExpression +import org.jetbrains.kotlin.fir.expressions.FirOperation +import org.jetbrains.kotlin.fir.visitors.* + +/* + * This file was generated automatically + * DO NOT MODIFY IT MANUALLY + */ + +internal class FirAssignmentOperatorStatementImpl( + override val source: FirSourceElement?, + override val annotations: MutableList, + override val operation: FirOperation, + override var leftArgument: FirExpression, + override var rightArgument: FirExpression, +) : FirAssignmentOperatorStatement() { + override fun acceptChildren(visitor: FirVisitor, data: D) { + annotations.forEach { it.accept(visitor, data) } + leftArgument.accept(visitor, data) + rightArgument.accept(visitor, data) + } + + override fun transformChildren(transformer: FirTransformer, data: D): FirAssignmentOperatorStatementImpl { + transformAnnotations(transformer, data) + transformLeftArgument(transformer, data) + transformRightArgument(transformer, data) + return this + } + + override fun transformAnnotations(transformer: FirTransformer, data: D): FirAssignmentOperatorStatementImpl { + annotations.transformInplace(transformer, data) + return this + } + + override fun transformLeftArgument(transformer: FirTransformer, data: D): FirAssignmentOperatorStatementImpl { + leftArgument = leftArgument.transformSingle(transformer, data) + return this + } + + override fun transformRightArgument(transformer: FirTransformer, data: D): FirAssignmentOperatorStatementImpl { + rightArgument = rightArgument.transformSingle(transformer, data) + return this + } +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirEqualityOperatorCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirEqualityOperatorCallImpl.kt new file mode 100644 index 00000000000..ee9e4fadab2 --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirEqualityOperatorCallImpl.kt @@ -0,0 +1,55 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.expressions.impl + +import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall +import org.jetbrains.kotlin.fir.expressions.FirArgumentList +import org.jetbrains.kotlin.fir.expressions.FirEqualityOperatorCall +import org.jetbrains.kotlin.fir.expressions.FirOperation +import org.jetbrains.kotlin.fir.types.FirTypeRef +import org.jetbrains.kotlin.fir.types.impl.FirImplicitBooleanTypeRef +import org.jetbrains.kotlin.fir.visitors.* + +/* + * This file was generated automatically + * DO NOT MODIFY IT MANUALLY + */ + +internal class FirEqualityOperatorCallImpl( + override val source: FirSourceElement?, + override val annotations: MutableList, + override var argumentList: FirArgumentList, + override val operation: FirOperation, +) : FirEqualityOperatorCall() { + override var typeRef: FirTypeRef = FirImplicitBooleanTypeRef(null) + + override fun acceptChildren(visitor: FirVisitor, data: D) { + typeRef.accept(visitor, data) + annotations.forEach { it.accept(visitor, data) } + argumentList.accept(visitor, data) + } + + override fun transformChildren(transformer: FirTransformer, data: D): FirEqualityOperatorCallImpl { + typeRef = typeRef.transformSingle(transformer, data) + transformAnnotations(transformer, data) + argumentList = argumentList.transformSingle(transformer, data) + return this + } + + override fun transformAnnotations(transformer: FirTransformer, data: D): FirEqualityOperatorCallImpl { + annotations.transformInplace(transformer, data) + return this + } + + override fun replaceTypeRef(newTypeRef: FirTypeRef) { + typeRef = newTypeRef + } + + override fun replaceArgumentList(newArgumentList: FirArgumentList) { + argumentList = newArgumentList + } +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirOperatorCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirOperatorCallImpl.kt index 8e86e7ba1b3..25a2d27ad5a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirOperatorCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirOperatorCallImpl.kt @@ -11,7 +11,6 @@ import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirOperation import org.jetbrains.kotlin.fir.expressions.FirOperatorCall import org.jetbrains.kotlin.fir.types.FirTypeRef -import org.jetbrains.kotlin.fir.types.impl.FirImplicitBooleanTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl import org.jetbrains.kotlin.fir.visitors.* @@ -26,11 +25,7 @@ internal class FirOperatorCallImpl( override var argumentList: FirArgumentList, override val operation: FirOperation, ) : FirOperatorCall() { - override var typeRef: FirTypeRef = if (operation in FirOperation.BOOLEANS) { - FirImplicitBooleanTypeRef(null) - } else { - FirImplicitTypeRefImpl(null) - } + override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override fun acceptChildren(visitor: FirVisitor, data: D) { typeRef.accept(visitor, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt index af4cf939fbb..ab46306b035 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt @@ -71,6 +71,8 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirOperatorCall import org.jetbrains.kotlin.fir.expressions.FirComparisonExpression import org.jetbrains.kotlin.fir.expressions.FirTypeOperatorCall +import org.jetbrains.kotlin.fir.expressions.FirAssignmentOperatorStatement +import org.jetbrains.kotlin.fir.expressions.FirEqualityOperatorCall import org.jetbrains.kotlin.fir.expressions.FirWhenExpression import org.jetbrains.kotlin.fir.expressions.FirWhenBranch import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessWithoutCallee @@ -400,6 +402,14 @@ abstract class FirTransformer : FirVisitor { + return transformElement(assignmentOperatorStatement, data) + } + + open fun transformEqualityOperatorCall(equalityOperatorCall: FirEqualityOperatorCall, data: D): CompositeTransformResult { + return transformElement(equalityOperatorCall, data) + } + open fun transformWhenExpression(whenExpression: FirWhenExpression, data: D): CompositeTransformResult { return transformElement(whenExpression, data) } @@ -896,6 +906,14 @@ abstract class FirTransformer : FirVisitor { + return transformAssignmentOperatorStatement(assignmentOperatorStatement, data) + } + + final override fun visitEqualityOperatorCall(equalityOperatorCall: FirEqualityOperatorCall, data: D): CompositeTransformResult { + return transformEqualityOperatorCall(equalityOperatorCall, data) + } + final override fun visitWhenExpression(whenExpression: FirWhenExpression, data: D): CompositeTransformResult { return transformWhenExpression(whenExpression, data) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt index 909c4341a5d..1d2a57ede6a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt @@ -71,6 +71,8 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirOperatorCall import org.jetbrains.kotlin.fir.expressions.FirComparisonExpression import org.jetbrains.kotlin.fir.expressions.FirTypeOperatorCall +import org.jetbrains.kotlin.fir.expressions.FirAssignmentOperatorStatement +import org.jetbrains.kotlin.fir.expressions.FirEqualityOperatorCall import org.jetbrains.kotlin.fir.expressions.FirWhenExpression import org.jetbrains.kotlin.fir.expressions.FirWhenBranch import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessWithoutCallee @@ -268,6 +270,10 @@ abstract class FirVisitor { open fun visitTypeOperatorCall(typeOperatorCall: FirTypeOperatorCall, data: D): R = visitElement(typeOperatorCall, data) + open fun visitAssignmentOperatorStatement(assignmentOperatorStatement: FirAssignmentOperatorStatement, data: D): R = visitElement(assignmentOperatorStatement, data) + + open fun visitEqualityOperatorCall(equalityOperatorCall: FirEqualityOperatorCall, data: D): R = visitElement(equalityOperatorCall, data) + open fun visitWhenExpression(whenExpression: FirWhenExpression, data: D): R = visitElement(whenExpression, data) open fun visitWhenBranch(whenBranch: FirWhenBranch, data: D): R = visitElement(whenBranch, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt index f49206c3e94..a4ddccf47dc 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt @@ -71,6 +71,8 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirOperatorCall import org.jetbrains.kotlin.fir.expressions.FirComparisonExpression import org.jetbrains.kotlin.fir.expressions.FirTypeOperatorCall +import org.jetbrains.kotlin.fir.expressions.FirAssignmentOperatorStatement +import org.jetbrains.kotlin.fir.expressions.FirEqualityOperatorCall import org.jetbrains.kotlin.fir.expressions.FirWhenExpression import org.jetbrains.kotlin.fir.expressions.FirWhenBranch import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessWithoutCallee @@ -398,6 +400,14 @@ abstract class FirVisitorVoid : FirVisitor() { visitElement(typeOperatorCall) } + open fun visitAssignmentOperatorStatement(assignmentOperatorStatement: FirAssignmentOperatorStatement) { + visitElement(assignmentOperatorStatement) + } + + open fun visitEqualityOperatorCall(equalityOperatorCall: FirEqualityOperatorCall) { + visitElement(equalityOperatorCall) + } + open fun visitWhenExpression(whenExpression: FirWhenExpression) { visitElement(whenExpression) } @@ -894,6 +904,14 @@ abstract class FirVisitorVoid : FirVisitor() { visitTypeOperatorCall(typeOperatorCall) } + final override fun visitAssignmentOperatorStatement(assignmentOperatorStatement: FirAssignmentOperatorStatement, data: Nothing?) { + visitAssignmentOperatorStatement(assignmentOperatorStatement) + } + + final override fun visitEqualityOperatorCall(equalityOperatorCall: FirEqualityOperatorCall, data: Nothing?) { + visitEqualityOperatorCall(equalityOperatorCall) + } + final override fun visitWhenExpression(whenExpression: FirWhenExpression, data: Nothing?) { visitWhenExpression(whenExpression) } diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt index 7a794e44164..3fbe56b977d 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt @@ -86,6 +86,8 @@ object FirTreeBuilder : AbstractFirTreeBuilder() { val operatorCall = element("OperatorCall", Expression, expression, call) val comparisonExpression = element("ComparisonExpression", Expression, expression) val typeOperatorCall = element("TypeOperatorCall", Expression, expression, call) + val assignmentOperatorStatement = element("AssignmentOperatorStatement", Expression, statement) + val equalityOperatorCall = element("EqualityOperatorCall", Expression, expression, call) val whenExpression = element("WhenExpression", Expression, expression, resolvable) val whenBranch = element("WhenBranch", Expression) val qualifiedAccessWithoutCallee = element("QualifiedAccessWithoutCallee", Expression, statement) 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 b3b55cb9501..c400418daa4 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 @@ -226,15 +226,8 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() } impl(operatorCall) { - default("typeRef", """ - |if (operation in FirOperation.BOOLEANS) { - | FirImplicitBooleanTypeRef(null) - | } else { - | FirImplicitTypeRefImpl(null) - | } - """.trimMargin()) - - useTypes(implicitTypeRefType, implicitBooleanTypeRefType) + default("typeRef", "FirImplicitTypeRefImpl(null)") + useTypes(implicitTypeRefType) } impl(comparisonExpression) { @@ -244,6 +237,13 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() impl(typeOperatorCall) + impl(assignmentOperatorStatement) + + impl(equalityOperatorCall) { + default("typeRef", "FirImplicitBooleanTypeRef(null)") + useTypes(implicitBooleanTypeRefType) + } + impl(resolvedQualifier) { isMutable("packageFqName", "relativeClassFqName", "isNullableLHSForCallableReference") default("classId") { diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt index 8dae874d0b0..31955bf6415 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt @@ -222,6 +222,16 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild needTransformOtherChildren() } + assignmentOperatorStatement.configure { + +field("operation", operationType) + +field("leftArgument", expression).withTransform() + +field("rightArgument", expression).withTransform() + } + + equalityOperatorCall.configure { + +field("operation", operationType) + } + whenBranch.configure { +field("condition", expression).withTransform() +field("result", block).withTransform()