From 8b9fb6a6cdb06ea54086bd6a82bc39676ff79fc8 Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Mon, 20 Jul 2020 10:48:21 +0300 Subject: [PATCH] [FIR] Remove FirOperatorCall node from fir tree --- .../jetbrains/kotlin/fir/dump/HtmlFirDump.kt | 15 ----- .../kotlin/fir/backend/Fir2IrVisitor.kt | 3 - .../generators/OperatorExpressionGenerator.kt | 7 --- .../converter/ExpressionsConverter.kt | 9 +-- .../kotlin/fir/lightTree/fir/WhenEntry.kt | 1 - .../kotlin/fir/builder/RawFirBuilder.kt | 8 +-- ...egerLiteralTypeApproximationTransformer.kt | 4 -- .../body/resolve/FirBodyResolveTransformer.kt | 4 -- .../FirExpressionsResolveTransformer.kt | 4 -- ...irAnnotationArgumentsResolveTransformer.kt | 4 -- .../kotlin/fir/expressions/FirOperatorCall.kt | 31 ---------- .../builder/FirOperatorCallBuilder.kt | 59 ------------------- .../expressions/impl/FirOperatorCallImpl.kt | 55 ----------------- .../kotlin/fir/visitors/FirTransformer.kt | 9 --- .../kotlin/fir/visitors/FirVisitor.kt | 3 - .../kotlin/fir/visitors/FirVisitorVoid.kt | 9 --- .../org/jetbrains/kotlin/fir/FirRenderer.kt | 10 ---- .../fir/tree/generator/BuilderConfigurator.kt | 4 -- .../fir/tree/generator/FirTreeBuilder.kt | 1 - .../generator/ImplementationConfigurator.kt | 5 -- .../fir/tree/generator/NodeConfigurator.kt | 4 -- .../compiler/visualizer/FirVisualizer.kt | 5 -- 22 files changed, 2 insertions(+), 252 deletions(-) delete mode 100644 compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirOperatorCall.kt delete mode 100644 compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirOperatorCallBuilder.kt delete mode 100644 compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirOperatorCallImpl.kt diff --git a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt index 0aa97d16689..131e8588aed 100644 --- a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt +++ b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt @@ -1331,20 +1331,6 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver generate(second) } - private fun FlowContent.generateUnary(expression: FirOperatorCall) { - unresolved { +expression.operation.operator } - ws - generate(expression.argument) - } - - private fun FlowContent.generate(expression: FirOperatorCall) { - when (expression.arguments.size) { - 1 -> generateUnary(expression) - 2 -> generateBinary(expression.arguments[0], expression.arguments[1], expression.operation) - else -> inlineUnsupported(expression) - } - } - private fun FlowContent.generate(typeOperatorCall: FirTypeOperatorCall) { generate(typeOperatorCall.argument) ws @@ -1569,7 +1555,6 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver generate(expression.expression) } is FirTypeOperatorCall -> generate(expression) - is FirOperatorCall -> generate(expression) is FirAssignmentOperatorStatement -> generateBinary(expression.leftArgument, expression.rightArgument, expression.operation) is FirEqualityOperatorCall -> generate(expression) is FirBinaryLogicExpression -> generate(expression) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index f9aa1c1960a..b3971e106fc 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -839,9 +839,6 @@ class Fir2IrVisitor( override fun visitComparisonExpression(comparisonExpression: FirComparisonExpression, data: Any?): IrElement = operatorGenerator.convertComparisonExpression(comparisonExpression) - override fun visitOperatorCall(operatorCall: FirOperatorCall, data: Any?): IrElement = - operatorGenerator.convertOperatorCall(operatorCall) - override fun visitStringConcatenationCall(stringConcatenationCall: FirStringConcatenationCall, data: Any?): IrElement { return stringConcatenationCall.convertWithOffsets { startOffset, endOffset -> IrStringConcatenationImpl( diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/OperatorExpressionGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/OperatorExpressionGenerator.kt index d86a9ba4aa5..2b414a317bf 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/OperatorExpressionGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/OperatorExpressionGenerator.kt @@ -34,13 +34,6 @@ internal class OperatorExpressionGenerator( } } - fun convertOperatorCall(operatorCall: FirOperatorCall): IrExpression { - return when (val operation = operatorCall.operation) { - FirOperation.EXCL -> visitor.convertToIrExpression(operatorCall.arguments[0]).negate(IrStatementOrigin.EXCL) - else -> error("Unexpected operation: $operation") - } - } - fun convertEqualityOperatorCall(equalityOperatorCall: FirEqualityOperatorCall): IrExpression { return equalityOperatorCall.convertWithOffsets { startOffset, endOffset -> generateEqualityOperatorCall(startOffset, endOffset, equalityOperatorCall.operation, equalityOperatorCall.arguments) diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt index c8f25283967..3c44c603b2f 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt @@ -378,14 +378,7 @@ class ExpressionsConverter( explicitReceiver = getAsFirExpression(argument, "No operand") } } - else -> { - val firOperation = operationToken.toFirOperation() - buildOperatorCall { - source = unaryExpression.toFirSourceElement() - operation = firOperation - argumentList = buildUnaryArgumentList(getAsFirExpression(argument, "No operand")) - } - } + else -> throw IllegalStateException("Unexpected expression: ${unaryExpression.asText}") } } diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/WhenEntry.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/WhenEntry.kt index b84046a88bb..d9373ec74f2 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/WhenEntry.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/WhenEntry.kt @@ -35,7 +35,6 @@ data class WhenEntry( fun toFirWhenConditionWithoutSubject(): FirExpression { return when (val condition = conditions.firstOrNull()) { -// is FirOperatorCall -> condition.arguments.first() null -> buildErrorExpression(null, ConeSimpleDiagnostic("No expression in condition with expression", DiagnosticKind.Syntax)) else -> condition } diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index e78080778fe..9639e3169b6 100644 --- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -1687,13 +1687,7 @@ class RawFirBuilder( explicitReceiver = argument.toFirExpression("No operand") } } - else -> { - buildOperatorCall { - source = expression.toFirSourceElement() - operation = operationToken.toFirOperation() - argumentList = buildUnaryArgumentList(argument.toFirExpression("No operand")) - } - } + else -> throw IllegalStateException("Unexpected expression: ${expression.text}") } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/IntegerLiteralTypeApproximationTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/IntegerLiteralTypeApproximationTransformer.kt index 1338338f501..3fd6a593a53 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/IntegerLiteralTypeApproximationTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/IntegerLiteralTypeApproximationTransformer.kt @@ -119,10 +119,6 @@ class IntegerLiteralTypeApproximationTransformer( }.compose() } - override fun transformOperatorCall(operatorCall: FirOperatorCall, data: ConeKotlinType?): CompositeTransformResult { - return operatorCall.compose() - } - // TODO: call outside override fun transformTypeOperatorCall( typeOperatorCall: FirTypeOperatorCall, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt index c8f27a2a6d4..027608eba7d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt @@ -132,10 +132,6 @@ open class FirBodyResolveTransformer( return expressionsTransformer.transformComparisonExpression(comparisonExpression, data) } - override fun transformOperatorCall(operatorCall: FirOperatorCall, data: ResolutionMode): CompositeTransformResult { - return expressionsTransformer.transformOperatorCall(operatorCall, data) - } - override fun transformTypeOperatorCall(typeOperatorCall: FirTypeOperatorCall, data: ResolutionMode): CompositeTransformResult { return expressionsTransformer.transformTypeOperatorCall(typeOperatorCall, data) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt index 88892df9e78..62c596b4427 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt @@ -429,10 +429,6 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform return result.compose() } - override fun transformOperatorCall(operatorCall: FirOperatorCall, data: ResolutionMode): CompositeTransformResult { - throw IllegalArgumentException(operatorCall.render()) - } - private inline fun resolveCandidateForAssignmentOperatorCall(block: () -> T): T { return dataFlowAnalyzer.withIgnoreFunctionCalls { callResolver.withNoArgumentsTransform { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsResolveTransformer.kt index b9dfbb1c890..a71d033e706 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAnnotationArgumentsResolveTransformer.kt @@ -145,10 +145,6 @@ private class FirExpressionsResolveTransformerForSpecificAnnotations( return comparisonExpression.compose() } - override fun transformOperatorCall(operatorCall: FirOperatorCall, data: ResolutionMode): CompositeTransformResult { - return operatorCall.compose() - } - override fun transformTypeOperatorCall( typeOperatorCall: FirTypeOperatorCall, data: ResolutionMode diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirOperatorCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirOperatorCall.kt deleted file mode 100644 index ef524efe9bb..00000000000 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirOperatorCall.kt +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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 FirOperatorCall : 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.visitOperatorCall(this, data) - - abstract override fun replaceTypeRef(newTypeRef: FirTypeRef) - - abstract override fun replaceArgumentList(newArgumentList: FirArgumentList) - - abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirOperatorCall -} 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 deleted file mode 100644 index ec18b5ebd93..00000000000 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirOperatorCallBuilder.kt +++ /dev/null @@ -1,59 +0,0 @@ -/* - * 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.FirOperation -import org.jetbrains.kotlin.fir.expressions.FirOperatorCall -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.FirImplicitTypeRefImpl -import org.jetbrains.kotlin.fir.visitors.* - -/* - * This file was generated automatically - * DO NOT MODIFY IT MANUALLY - */ - -@FirBuilderDsl -class FirOperatorCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder { - override var source: FirSourceElement? = null - override val annotations: MutableList = mutableListOf() - override lateinit var argumentList: FirArgumentList - lateinit var operation: FirOperation - - override fun build(): FirOperatorCall { - return FirOperatorCallImpl( - source, - annotations, - argumentList, - operation, - ) - } - - - @Deprecated("Modification of 'typeRef' has no impact for FirOperatorCallBuilder", level = DeprecationLevel.HIDDEN) - override var typeRef: FirTypeRef - get() = throw IllegalStateException() - set(value) { - throw IllegalStateException() - } -} - -@OptIn(ExperimentalContracts::class) -inline fun buildOperatorCall(init: FirOperatorCallBuilder.() -> Unit): FirOperatorCall { - contract { - callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE) - } - return FirOperatorCallBuilder().apply(init).build() -} 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 deleted file mode 100644 index 25a2d27ad5a..00000000000 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirOperatorCallImpl.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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.FirOperation -import org.jetbrains.kotlin.fir.expressions.FirOperatorCall -import org.jetbrains.kotlin.fir.types.FirTypeRef -import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl -import org.jetbrains.kotlin.fir.visitors.* - -/* - * This file was generated automatically - * DO NOT MODIFY IT MANUALLY - */ - -internal class FirOperatorCallImpl( - override val source: FirSourceElement?, - override val annotations: MutableList, - override var argumentList: FirArgumentList, - override val operation: FirOperation, -) : FirOperatorCall() { - override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(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): FirOperatorCallImpl { - typeRef = typeRef.transformSingle(transformer, data) - transformAnnotations(transformer, data) - argumentList = argumentList.transformSingle(transformer, data) - return this - } - - override fun transformAnnotations(transformer: FirTransformer, data: D): FirOperatorCallImpl { - 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/visitors/FirTransformer.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt index ab46306b035..2ed58a0d3de 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 @@ -68,7 +68,6 @@ import org.jetbrains.kotlin.fir.types.FirTypeProjectionWithVariance import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirCall 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 @@ -390,10 +389,6 @@ abstract class FirTransformer : FirVisitor { - return transformElement(operatorCall, data) - } - open fun transformComparisonExpression(comparisonExpression: FirComparisonExpression, data: D): CompositeTransformResult { return transformElement(comparisonExpression, data) } @@ -894,10 +889,6 @@ abstract class FirTransformer : FirVisitor { - return transformOperatorCall(operatorCall, data) - } - final override fun visitComparisonExpression(comparisonExpression: FirComparisonExpression, data: D): CompositeTransformResult { return transformComparisonExpression(comparisonExpression, 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 1d2a57ede6a..9e1650cdf6e 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 @@ -68,7 +68,6 @@ import org.jetbrains.kotlin.fir.types.FirTypeProjectionWithVariance import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirCall 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 @@ -264,8 +263,6 @@ abstract class FirVisitor { open fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: D): R = visitElement(annotationCall, data) - open fun visitOperatorCall(operatorCall: FirOperatorCall, data: D): R = visitElement(operatorCall, data) - open fun visitComparisonExpression(comparisonExpression: FirComparisonExpression, data: D): R = visitElement(comparisonExpression, data) open fun visitTypeOperatorCall(typeOperatorCall: FirTypeOperatorCall, data: D): R = visitElement(typeOperatorCall, 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 a4ddccf47dc..395cf5aca83 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 @@ -68,7 +68,6 @@ import org.jetbrains.kotlin.fir.types.FirTypeProjectionWithVariance import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirCall 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 @@ -388,10 +387,6 @@ abstract class FirVisitorVoid : FirVisitor() { visitElement(annotationCall) } - open fun visitOperatorCall(operatorCall: FirOperatorCall) { - visitElement(operatorCall) - } - open fun visitComparisonExpression(comparisonExpression: FirComparisonExpression) { visitElement(comparisonExpression) } @@ -892,10 +887,6 @@ abstract class FirVisitorVoid : FirVisitor() { visitAnnotationCall(annotationCall) } - final override fun visitOperatorCall(operatorCall: FirOperatorCall, data: Nothing?) { - visitOperatorCall(operatorCall) - } - final override fun visitComparisonExpression(comparisonExpression: FirComparisonExpression, data: Nothing?) { visitComparisonExpression(comparisonExpression) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt index b8606707dbd..9e2cfe05e74 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt @@ -1081,16 +1081,6 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM visitCall(functionCall) } - override fun visitOperatorCall(operatorCall: FirOperatorCall) { - operatorCall.annotations.renderAnnotations() - print(operatorCall.operation.operator) - if (operatorCall is FirTypeOperatorCall) { - print("/") - operatorCall.conversionTypeRef.accept(this) - } - visitCall(operatorCall) - } - override fun visitComparisonExpression(comparisonExpression: FirComparisonExpression) { print("CMP(${comparisonExpression.operation.operator}, ") comparisonExpression.compareToCall.accept(this) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt index ed0acb31658..6eac4fc18ae 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt @@ -174,10 +174,6 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree default("resolvePhase", "FirResolvePhase.RAW_FIR") } - builder(operatorCall) { - parents += callBuilder - } - builder(typeOperatorCall) { parents += callBuilder default("argumentList") { 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 3fbe56b977d..1a38a5523f2 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 @@ -83,7 +83,6 @@ object FirTreeBuilder : AbstractFirTreeBuilder() { val argumentList = element("ArgumentList", Expression) val call = element("Call", Expression, statement) // TODO: may smth like `CallWithArguments` or `ElementWithArguments`? val annotationCall = element("AnnotationCall", Expression, expression, call) - 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) 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 c400418daa4..0f83d59d33d 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 @@ -225,11 +225,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() } } - impl(operatorCall) { - default("typeRef", "FirImplicitTypeRefImpl(null)") - useTypes(implicitTypeRefType) - } - impl(comparisonExpression) { default("typeRef", "FirImplicitBooleanTypeRef(null)") useTypes(implicitBooleanTypeRefType) 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 31955bf6415..e41a9bd5dde 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 @@ -207,10 +207,6 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild +field("calleeReference", namedReference) } - operatorCall.configure { - +field("operation", operationType) - } - comparisonExpression.configure { +field("operation", operationType) +field("compareToCall", functionCall) diff --git a/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt b/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt index aa99909e14d..bc2f411dab7 100644 --- a/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt +++ b/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt @@ -222,7 +222,6 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { expression.operationReference.let { expression.allOfTypeWithLocalReplace(it) { this.calleeReference.name.asString() } ?: expression.firstOfTypeWithLocalReplace(it) { this.lValue.toString() } - ?: expression.firstOfTypeWithRender(it) } super.visitBinaryExpression(expression) } @@ -392,10 +391,6 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { } } - override fun visitOperatorCall(operatorCall: FirOperatorCall, data: StringBuilder) { - data.append("operator call ${operatorCall.operation}") - } - override fun visitComparisonExpression(comparisonExpression: FirComparisonExpression, data: StringBuilder) { data.append("CMP(${comparisonExpression.operation.operator}, ") comparisonExpression.compareToCall.accept(this, data)