Use camel-case in FirFunctionCallOrigin

Also componentCall is operator call
This commit is contained in:
Andrey Zinovyev
2021-05-19 18:25:21 +03:00
committed by TeamCityServer
parent 419aa65381
commit d38effcbbe
17 changed files with 35 additions and 81 deletions
@@ -267,7 +267,7 @@ class ExpressionsConverter(
} }
explicitReceiver = leftArgAsFir explicitReceiver = leftArgAsFir
argumentList = buildUnaryArgumentList(rightArgAsFir) argumentList = buildUnaryArgumentList(rightArgAsFir)
origin = if (conventionCallName != null) FirFunctionCallOrigin.OPERATOR else FirFunctionCallOrigin.INFIX origin = if (conventionCallName != null) FirFunctionCallOrigin.Operator else FirFunctionCallOrigin.Infix
} }
} else { } else {
val firOperation = operationToken.toFirOperation() val firOperation = operationToken.toFirOperation()
@@ -392,7 +392,7 @@ class ExpressionsConverter(
name = conventionCallName name = conventionCallName
} }
explicitReceiver = receiver explicitReceiver = receiver
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
} }
else -> throw IllegalStateException("Unexpected expression: ${unaryExpression.asText}") else -> throw IllegalStateException("Unexpected expression: ${unaryExpression.asText}")
@@ -844,7 +844,7 @@ class ExpressionsConverter(
arguments += indices arguments += indices
getArgument?.let { arguments += it } getArgument?.let { arguments += it }
} }
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
} }
@@ -1889,7 +1889,7 @@ open class RawFirBuilder(
} }
explicitReceiver = leftArgument explicitReceiver = leftArgument
argumentList = buildUnaryArgumentList(rightArgument) argumentList = buildUnaryArgumentList(rightArgument)
origin = if (conventionCallName != null) FirFunctionCallOrigin.OPERATOR else FirFunctionCallOrigin.INFIX origin = if (conventionCallName != null) FirFunctionCallOrigin.Operator else FirFunctionCallOrigin.Infix
} }
} else { } else {
val firOperation = operationToken.toFirOperation() val firOperation = operationToken.toFirOperation()
@@ -1968,7 +1968,7 @@ open class RawFirBuilder(
name = conventionCallName name = conventionCallName
} }
explicitReceiver = receiver explicitReceiver = receiver
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
} }
else -> throw IllegalStateException("Unexpected expression: ${expression.text}") else -> throw IllegalStateException("Unexpected expression: ${expression.text}")
@@ -2065,7 +2065,7 @@ open class RawFirBuilder(
arguments += getArgument arguments += getArgument
} }
} }
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
} }
@@ -520,7 +520,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
} else { } else {
generateResolvedAccessExpression(desugaredSource, initialValueVar) generateResolvedAccessExpression(desugaredSource, initialValueVar)
} }
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
// resultVar is only used for prefix increment/decrement. // resultVar is only used for prefix increment/decrement.
@@ -644,7 +644,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
} else { } else {
generateResolvedAccessExpression(desugaredSource, initialValueVar) generateResolvedAccessExpression(desugaredSource, initialValueVar)
} }
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
// resultVar is only used for prefix increment/decrement. // resultVar is only used for prefix increment/decrement.
@@ -761,7 +761,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
arguments += generateResolvedAccessExpression(indexVar.source, indexVar) 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). // initialValueVar is only used for postfix increment/decrement (stores the argument value before increment/decrement).
@@ -784,7 +784,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
} else { } else {
generateResolvedAccessExpression(desugaredSource, initialValueVar) generateResolvedAccessExpression(desugaredSource, initialValueVar)
} }
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
// resultVar is only used for prefix increment/decrement. // resultVar is only used for prefix increment/decrement.
@@ -813,7 +813,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
resultInitializer resultInitializer
} }
} }
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
} }
@@ -984,7 +984,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
ConeSimpleDiagnostic("No value for array set", DiagnosticKind.Syntax) ConeSimpleDiagnostic("No value for array set", DiagnosticKind.Syntax)
) )
} }
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
} }
@@ -1027,7 +1027,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
calleeReference = buildSimpleNamedReference { calleeReference = buildSimpleNamedReference {
name = OperatorNameConventions.SET name = OperatorNameConventions.SET
} }
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
argumentList = buildArgumentList { argumentList = buildArgumentList {
for (indexVariable in indexVariables) { for (indexVariable in indexVariables) {
arguments += indexVariable.toQualifiedAccess() arguments += indexVariable.toQualifiedAccess()
@@ -1043,7 +1043,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
arguments += indexVariable.toQualifiedAccess() arguments += indexVariable.toQualifiedAccess()
} }
} }
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
val operatorCall = buildFunctionCall { val operatorCall = buildFunctionCall {
@@ -1060,7 +1060,7 @@ abstract class BaseFirBuilder<T>(val baseSession: FirSession, val context: Conte
) )
) )
} }
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
arguments += operatorCall arguments += operatorCall
} }
@@ -193,7 +193,7 @@ fun FirExpression.generateContainsOperation(
name = OperatorNameConventions.NOT name = OperatorNameConventions.NOT
} }
explicitReceiver = containsCall explicitReceiver = containsCall
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
} }
@@ -243,7 +243,7 @@ private fun FirExpression.createConventionCall(
} }
explicitReceiver = this@createConventionCall explicitReceiver = this@createConventionCall
argumentList = buildUnaryArgumentList(argument) argumentList = buildUnaryArgumentList(argument)
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
} }
@@ -398,7 +398,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate(
name = PROVIDE_DELEGATE name = PROVIDE_DELEGATE
} }
argumentList = buildBinaryArgumentList(thisRef(forDispatchReceiver = true), propertyRef()) argumentList = buildBinaryArgumentList(thisRef(forDispatchReceiver = true), propertyRef())
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
delegate = delegateBuilder.build() delegate = delegateBuilder.build()
if (stubMode) return if (stubMode) return
@@ -424,7 +424,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate(
name = GET_VALUE name = GET_VALUE
} }
argumentList = buildBinaryArgumentList(thisRef(), propertyRef()) argumentList = buildBinaryArgumentList(thisRef(), propertyRef())
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
target = returnTarget target = returnTarget
} }
@@ -477,7 +477,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate(
} }
} }
} }
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
) )
if (annotations != null) { if (annotations != null) {
@@ -162,9 +162,7 @@ class FirCallResolver(
} }
var reducedCandidates = if (!result.currentApplicability.isSuccess) { var reducedCandidates = if (!result.currentApplicability.isSuccess) {
val distinctApplicabilities = bestCandidates.flatMapTo(mutableSetOf()) { candidate -> val distinctApplicabilities = bestCandidates.mapTo(mutableSetOf()) { it.currentApplicability }
candidate.diagnostics.map { it.applicability }
}
//if all candidates have the same kind on inApplicability - try to choose the most specific one //if all candidates have the same kind on inApplicability - try to choose the most specific one
if (distinctApplicabilities.size == 1 && distinctApplicabilities.single() > CandidateApplicability.INAPPLICABLE) { if (distinctApplicabilities.size == 1 && distinctApplicabilities.single() > CandidateApplicability.INAPPLICABLE) {
chooseMostSpecific() chooseMostSpecific()
@@ -272,9 +272,9 @@ internal object CheckCallModifiers : CheckerStage() {
if (callInfo.callSite is FirFunctionCall) { if (callInfo.callSite is FirFunctionCall) {
val functionSymbol = candidate.symbol as? FirNamedFunctionSymbol ?: return val functionSymbol = candidate.symbol as? FirNamedFunctionSymbol ?: return
when { when {
callInfo.callSite.origin == FirFunctionCallOrigin.INFIX && !functionSymbol.fir.isInfix -> callInfo.callSite.origin == FirFunctionCallOrigin.Infix && !functionSymbol.fir.isInfix ->
sink.reportDiagnostic(InfixCallOfNonInfixFunction(functionSymbol)) sink.reportDiagnostic(InfixCallOfNonInfixFunction(functionSymbol))
callInfo.callSite.origin == FirFunctionCallOrigin.OPERATOR && !functionSymbol.fir.isOperator -> callInfo.callSite.origin == FirFunctionCallOrigin.Operator && !functionSymbol.fir.isOperator ->
sink.reportDiagnostic(OperatorCallOfNonOperatorFunction(functionSymbol)) sink.reportDiagnostic(OperatorCallOfNonOperatorFunction(functionSymbol))
callInfo.isImplicitInvoke && !functionSymbol.fir.isOperator -> callInfo.isImplicitInvoke && !functionSymbol.fir.isOperator ->
sink.reportDiagnostic(OperatorCallOfNonOperatorFunction(functionSymbol)) sink.reportDiagnostic(OperatorCallOfNonOperatorFunction(functionSymbol))
@@ -51,7 +51,7 @@ private class ConeConditionalEffectToFirVisitor(
return buildFunctionCall { return buildFunctionCall {
calleeReference = buildSimpleNamedReference { name = OperatorNameConventions.NOT } calleeReference = buildSimpleNamedReference { name = OperatorNameConventions.NOT }
this.explicitReceiver = explicitReceiver this.explicitReceiver = explicitReceiver
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
} }
@@ -370,7 +370,7 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform
this.name = name this.name = name
candidateSymbol = null candidateSymbol = null
} }
origin = FirFunctionCallOrigin.OPERATOR origin = FirFunctionCallOrigin.Operator
} }
// x.plusAssign(y) // x.plusAssign(y)
@@ -44,7 +44,7 @@ class FirIntegerOperatorCall @FirImplementationDetail constructor(
extensionReceiver, extensionReceiver,
argumentList, argumentList,
calleeReference, calleeReference,
FirFunctionCallOrigin.OPERATOR FirFunctionCallOrigin.Operator
) )
@FirBuilderDsl @FirBuilderDsl
@@ -43,7 +43,7 @@ open class FirFunctionCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotatio
override var extensionReceiver: FirExpression = FirNoReceiverExpression override var extensionReceiver: FirExpression = FirNoReceiverExpression
override var argumentList: FirArgumentList = FirEmptyArgumentList override var argumentList: FirArgumentList = FirEmptyArgumentList
override lateinit var calleeReference: FirNamedReference override lateinit var calleeReference: FirNamedReference
override var origin: FirFunctionCallOrigin = FirFunctionCallOrigin.REGULAR override var origin: FirFunctionCallOrigin = FirFunctionCallOrigin.Regular
@OptIn(FirImplementationDetail::class) @OptIn(FirImplementationDetail::class)
override fun build(): FirFunctionCall { override fun build(): FirFunctionCall {
@@ -39,7 +39,7 @@ internal class FirComponentCallImpl(
) : FirComponentCall() { ) : FirComponentCall() {
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
override var calleeReference: FirNamedReference = FirSimpleNamedReference(source, Name.identifier("component$componentIndex"), 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 <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
typeRef.accept(visitor, data) typeRef.accept(visitor, data)
@@ -35,7 +35,7 @@ internal class FirImplicitInvokeCallImpl(
override var calleeReference: FirNamedReference, override var calleeReference: FirNamedReference,
) : FirImplicitInvokeCall() { ) : FirImplicitInvokeCall() {
override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
override val origin: FirFunctionCallOrigin = FirFunctionCallOrigin.OPERATOR override val origin: FirFunctionCallOrigin = FirFunctionCallOrigin.Operator
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) { override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
typeRef.accept(visitor, data) typeRef.accept(visitor, data)
@@ -6,5 +6,5 @@
package org.jetbrains.kotlin.fir.expressions package org.jetbrains.kotlin.fir.expressions
enum class FirFunctionCallOrigin { enum class FirFunctionCallOrigin {
REGULAR, INFIX, OPERATOR Regular, Infix, Operator
} }
@@ -179,7 +179,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
builder(functionCall) { builder(functionCall) {
configurationForFunctionCallBuilder() configurationForFunctionCallBuilder()
default("origin") { default("origin") {
value = "FirFunctionCallOrigin.REGULAR" value = "FirFunctionCallOrigin.Regular"
} }
} }
builder(implicitInvokeCall, init = configurationForFunctionCallBuilder) builder(implicitInvokeCall, init = configurationForFunctionCallBuilder)
@@ -154,11 +154,11 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
} }
impl(implicitInvokeCall) { impl(implicitInvokeCall) {
default("origin", "FirFunctionCallOrigin.OPERATOR") default("origin", "FirFunctionCallOrigin.Operator")
} }
impl(componentCall) { impl(componentCall) {
default("origin", "FirFunctionCallOrigin.REGULAR") default("origin", "FirFunctionCallOrigin.Operator")
} }
impl(qualifiedAccessExpression) impl(qualifiedAccessExpression)
@@ -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(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
consumeString(<!ARGUMENT_TYPE_MISMATCH!>y<!>)
consumeExample2(++a)
consumeString(a plus b)
}
fun consumeInt(i: Int) {}
fun consumeString(s: String) {}
fun consumeExample2(e: Example2) {}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER, -EXTENSION_SHADOWED_BY_MEMBER // !DIAGNOSTICS: -UNUSED_PARAMETER, -EXTENSION_SHADOWED_BY_MEMBER
open class Example { open class Example {
@@ -42,4 +43,4 @@ fun test() {
fun consumeInt(i: Int) {} fun consumeInt(i: Int) {}
fun consumeString(s: String) {} fun consumeString(s: String) {}
fun consumeExample2(e: Example2) {} fun consumeExample2(e: Example2) {}