From d38effcbbe49be69a4dd67ab0f821ad7cce09c74 Mon Sep 17 00:00:00 2001 From: Andrey Zinovyev Date: Wed, 19 May 2021 18:25:21 +0300 Subject: [PATCH] Use camel-case in FirFunctionCallOrigin Also componentCall is operator call --- .../converter/ExpressionsConverter.kt | 6 +-- .../kotlin/fir/builder/RawFirBuilder.kt | 6 +-- .../kotlin/fir/builder/BaseFirBuilder.kt | 18 ++++---- .../kotlin/fir/builder/ConversionUtils.kt | 10 ++--- .../jetbrains/kotlin/fir/FirCallResolver.kt | 4 +- .../fir/resolve/calls/ResolutionStages.kt | 4 +- .../ConeConditionalEffectToFirVisitor.kt | 2 +- .../FirExpressionsResolveTransformer.kt | 2 +- .../fir/scopes/impl/FirIntegerOperatorCall.kt | 2 +- .../builder/FirFunctionCallBuilder.kt | 2 +- .../expressions/impl/FirComponentCallImpl.kt | 2 +- .../impl/FirImplicitInvokeCallImpl.kt | 2 +- .../fir/expressions/FirFunctionCallOrigin.kt | 2 +- .../fir/tree/generator/BuilderConfigurator.kt | 2 +- .../generator/ImplementationConfigurator.kt | 4 +- .../modifiers/operatorInfix/Simple.fir.kt | 45 ------------------- .../tests/modifiers/operatorInfix/Simple.kt | 3 +- 17 files changed, 35 insertions(+), 81 deletions(-) delete mode 100644 compiler/testData/diagnostics/tests/modifiers/operatorInfix/Simple.fir.kt 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 256c86892b3..ba31cf37be0 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 @@ -267,7 +267,7 @@ class ExpressionsConverter( } explicitReceiver = leftArgAsFir argumentList = buildUnaryArgumentList(rightArgAsFir) - origin = if (conventionCallName != null) FirFunctionCallOrigin.OPERATOR else FirFunctionCallOrigin.INFIX + origin = if (conventionCallName != null) FirFunctionCallOrigin.Operator else FirFunctionCallOrigin.Infix } } else { val firOperation = operationToken.toFirOperation() @@ -392,7 +392,7 @@ class ExpressionsConverter( name = conventionCallName } explicitReceiver = receiver - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } } else -> throw IllegalStateException("Unexpected expression: ${unaryExpression.asText}") @@ -844,7 +844,7 @@ class ExpressionsConverter( arguments += indices getArgument?.let { arguments += it } } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } } 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 f54f651dfc4..956be02a8c0 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 @@ -1889,7 +1889,7 @@ open class RawFirBuilder( } explicitReceiver = leftArgument argumentList = buildUnaryArgumentList(rightArgument) - origin = if (conventionCallName != null) FirFunctionCallOrigin.OPERATOR else FirFunctionCallOrigin.INFIX + origin = if (conventionCallName != null) FirFunctionCallOrigin.Operator else FirFunctionCallOrigin.Infix } } else { val firOperation = operationToken.toFirOperation() @@ -1968,7 +1968,7 @@ open class RawFirBuilder( name = conventionCallName } explicitReceiver = receiver - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } } else -> throw IllegalStateException("Unexpected expression: ${expression.text}") @@ -2065,7 +2065,7 @@ open class RawFirBuilder( arguments += getArgument } } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } } diff --git a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt index e1a0258848b..8484912bbce 100644 --- a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt +++ b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt @@ -520,7 +520,7 @@ abstract class BaseFirBuilder(val baseSession: FirSession, val context: Conte } else { generateResolvedAccessExpression(desugaredSource, initialValueVar) } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } // resultVar is only used for prefix increment/decrement. @@ -644,7 +644,7 @@ abstract class BaseFirBuilder(val baseSession: FirSession, val context: Conte } else { generateResolvedAccessExpression(desugaredSource, initialValueVar) } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } // resultVar is only used for prefix increment/decrement. @@ -761,7 +761,7 @@ abstract class BaseFirBuilder(val baseSession: FirSession, val context: Conte arguments += generateResolvedAccessExpression(indexVar.source, indexVar) } } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } // initialValueVar is only used for postfix increment/decrement (stores the argument value before increment/decrement). @@ -784,7 +784,7 @@ abstract class BaseFirBuilder(val baseSession: FirSession, val context: Conte } else { generateResolvedAccessExpression(desugaredSource, initialValueVar) } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } // resultVar is only used for prefix increment/decrement. @@ -813,7 +813,7 @@ abstract class BaseFirBuilder(val baseSession: FirSession, val context: Conte resultInitializer } } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } } @@ -984,7 +984,7 @@ abstract class BaseFirBuilder(val baseSession: FirSession, val context: Conte ConeSimpleDiagnostic("No value for array set", DiagnosticKind.Syntax) ) } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } } @@ -1027,7 +1027,7 @@ abstract class BaseFirBuilder(val baseSession: FirSession, val context: Conte calleeReference = buildSimpleNamedReference { name = OperatorNameConventions.SET } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator argumentList = buildArgumentList { for (indexVariable in indexVariables) { arguments += indexVariable.toQualifiedAccess() @@ -1043,7 +1043,7 @@ abstract class BaseFirBuilder(val baseSession: FirSession, val context: Conte arguments += indexVariable.toQualifiedAccess() } } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } val operatorCall = buildFunctionCall { @@ -1060,7 +1060,7 @@ abstract class BaseFirBuilder(val baseSession: FirSession, val context: Conte ) ) } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } arguments += operatorCall } diff --git a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt index c8e6b022359..eaee34abb2c 100644 --- a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt +++ b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt @@ -193,7 +193,7 @@ fun FirExpression.generateContainsOperation( name = OperatorNameConventions.NOT } explicitReceiver = containsCall - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } } @@ -243,7 +243,7 @@ private fun FirExpression.createConventionCall( } explicitReceiver = this@createConventionCall argumentList = buildUnaryArgumentList(argument) - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } } @@ -398,7 +398,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate( name = PROVIDE_DELEGATE } argumentList = buildBinaryArgumentList(thisRef(forDispatchReceiver = true), propertyRef()) - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } delegate = delegateBuilder.build() if (stubMode) return @@ -424,7 +424,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate( name = GET_VALUE } argumentList = buildBinaryArgumentList(thisRef(), propertyRef()) - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } target = returnTarget } @@ -477,7 +477,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate( } } } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } ) if (annotations != null) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt index 8616b412380..5cf25bcafce 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt @@ -162,9 +162,7 @@ class FirCallResolver( } var reducedCandidates = if (!result.currentApplicability.isSuccess) { - val distinctApplicabilities = bestCandidates.flatMapTo(mutableSetOf()) { candidate -> - candidate.diagnostics.map { it.applicability } - } + val distinctApplicabilities = bestCandidates.mapTo(mutableSetOf()) { it.currentApplicability } //if all candidates have the same kind on inApplicability - try to choose the most specific one if (distinctApplicabilities.size == 1 && distinctApplicabilities.single() > CandidateApplicability.INAPPLICABLE) { chooseMostSpecific() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt index c40cf8739d7..a462399fe23 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionStages.kt @@ -272,9 +272,9 @@ internal object CheckCallModifiers : CheckerStage() { if (callInfo.callSite is FirFunctionCall) { val functionSymbol = candidate.symbol as? FirNamedFunctionSymbol ?: return when { - callInfo.callSite.origin == FirFunctionCallOrigin.INFIX && !functionSymbol.fir.isInfix -> + callInfo.callSite.origin == FirFunctionCallOrigin.Infix && !functionSymbol.fir.isInfix -> sink.reportDiagnostic(InfixCallOfNonInfixFunction(functionSymbol)) - callInfo.callSite.origin == FirFunctionCallOrigin.OPERATOR && !functionSymbol.fir.isOperator -> + callInfo.callSite.origin == FirFunctionCallOrigin.Operator && !functionSymbol.fir.isOperator -> sink.reportDiagnostic(OperatorCallOfNonOperatorFunction(functionSymbol)) callInfo.isImplicitInvoke && !functionSymbol.fir.isOperator -> sink.reportDiagnostic(OperatorCallOfNonOperatorFunction(functionSymbol)) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/contracts/ConeConditionalEffectToFirVisitor.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/contracts/ConeConditionalEffectToFirVisitor.kt index c024c2d6fcb..4b0129a7413 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/contracts/ConeConditionalEffectToFirVisitor.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/contracts/ConeConditionalEffectToFirVisitor.kt @@ -51,7 +51,7 @@ private class ConeConditionalEffectToFirVisitor( return buildFunctionCall { calleeReference = buildSimpleNamedReference { name = OperatorNameConventions.NOT } this.explicitReceiver = explicitReceiver - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } } 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 64ac1407b3f..1ec09e8917c 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 @@ -370,7 +370,7 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform this.name = name candidateSymbol = null } - origin = FirFunctionCallOrigin.OPERATOR + origin = FirFunctionCallOrigin.Operator } // x.plusAssign(y) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerOperatorCall.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerOperatorCall.kt index 423aaf602aa..87bba3095ad 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerOperatorCall.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerOperatorCall.kt @@ -44,7 +44,7 @@ class FirIntegerOperatorCall @FirImplementationDetail constructor( extensionReceiver, argumentList, calleeReference, - FirFunctionCallOrigin.OPERATOR + FirFunctionCallOrigin.Operator ) @FirBuilderDsl diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt index e98836f0866..5904dbc73a6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt @@ -43,7 +43,7 @@ open class FirFunctionCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotatio override var extensionReceiver: FirExpression = FirNoReceiverExpression override var argumentList: FirArgumentList = FirEmptyArgumentList override lateinit var calleeReference: FirNamedReference - override var origin: FirFunctionCallOrigin = FirFunctionCallOrigin.REGULAR + override var origin: FirFunctionCallOrigin = FirFunctionCallOrigin.Regular @OptIn(FirImplementationDetail::class) override fun build(): FirFunctionCall { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt index a88240ebb9d..5cd609def35 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt @@ -39,7 +39,7 @@ internal class FirComponentCallImpl( ) : FirComponentCall() { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override var calleeReference: FirNamedReference = FirSimpleNamedReference(source, Name.identifier("component$componentIndex"), null) - override val origin: FirFunctionCallOrigin = FirFunctionCallOrigin.REGULAR + override val origin: FirFunctionCallOrigin = FirFunctionCallOrigin.Operator override fun acceptChildren(visitor: FirVisitor, data: D) { typeRef.accept(visitor, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt index 4f1a352defa..64fb7c66003 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt @@ -35,7 +35,7 @@ internal class FirImplicitInvokeCallImpl( override var calleeReference: FirNamedReference, ) : FirImplicitInvokeCall() { override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) - override val origin: FirFunctionCallOrigin = FirFunctionCallOrigin.OPERATOR + override val origin: FirFunctionCallOrigin = FirFunctionCallOrigin.Operator override fun acceptChildren(visitor: FirVisitor, data: D) { typeRef.accept(visitor, data) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirFunctionCallOrigin.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirFunctionCallOrigin.kt index d9793578e24..0f982dc21d9 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirFunctionCallOrigin.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/FirFunctionCallOrigin.kt @@ -6,5 +6,5 @@ package org.jetbrains.kotlin.fir.expressions enum class FirFunctionCallOrigin { - REGULAR, INFIX, OPERATOR + Regular, Infix, Operator } \ No newline at end of file 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 630221fcd21..43122176a04 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 @@ -179,7 +179,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree builder(functionCall) { configurationForFunctionCallBuilder() default("origin") { - value = "FirFunctionCallOrigin.REGULAR" + value = "FirFunctionCallOrigin.Regular" } } builder(implicitInvokeCall, init = configurationForFunctionCallBuilder) 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 ca9ba3c00db..c5b303c4ffe 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 @@ -154,11 +154,11 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() } impl(implicitInvokeCall) { - default("origin", "FirFunctionCallOrigin.OPERATOR") + default("origin", "FirFunctionCallOrigin.Operator") } impl(componentCall) { - default("origin", "FirFunctionCallOrigin.REGULAR") + default("origin", "FirFunctionCallOrigin.Operator") } impl(qualifiedAccessExpression) diff --git a/compiler/testData/diagnostics/tests/modifiers/operatorInfix/Simple.fir.kt b/compiler/testData/diagnostics/tests/modifiers/operatorInfix/Simple.fir.kt deleted file mode 100644 index a926b463753..00000000000 --- a/compiler/testData/diagnostics/tests/modifiers/operatorInfix/Simple.fir.kt +++ /dev/null @@ -1,45 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER, -EXTENSION_SHADOWED_BY_MEMBER - -open class Example { - fun invoke() = 0 - fun get(i: Int) = 0 - - fun component1() = 0 - fun component2() = 0 - - fun inc() = Example() - - fun plus(o: Example) = 0 -} - -class Example2 : Example() - -operator fun Example.invoke() = "" -operator fun Example.get(i: Int) = "" - -operator fun Example.component1() = "" -operator fun Example.component2() = "" - -operator fun Example.inc() = Example2() - -infix fun Example.plus(o: Example) = "" - -fun test() { - var a = Example() - val b = Example() - - consumeString(a()) - consumeString(a[1]) - - val (x, y) = Example() - consumeString(x) - consumeString(y) - - consumeExample2(++a) - - consumeString(a plus b) -} - -fun consumeInt(i: Int) {} -fun consumeString(s: String) {} -fun consumeExample2(e: Example2) {} diff --git a/compiler/testData/diagnostics/tests/modifiers/operatorInfix/Simple.kt b/compiler/testData/diagnostics/tests/modifiers/operatorInfix/Simple.kt index b58a31a2e03..a9e258e24ba 100644 --- a/compiler/testData/diagnostics/tests/modifiers/operatorInfix/Simple.kt +++ b/compiler/testData/diagnostics/tests/modifiers/operatorInfix/Simple.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !DIAGNOSTICS: -UNUSED_PARAMETER, -EXTENSION_SHADOWED_BY_MEMBER open class Example { @@ -42,4 +43,4 @@ fun test() { fun consumeInt(i: Int) {} fun consumeString(s: String) {} -fun consumeExample2(e: Example2) {} \ No newline at end of file +fun consumeExample2(e: Example2) {}