From fdc008e8af0f11bda0cc80a6faf14fc2d3d54b57 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 7 Jun 2022 18:08:30 +0200 Subject: [PATCH] [analysis api] rename KtSignature -> KtCallableSignature --- .../components/KtFe10CallResolver.kt | 2 +- .../analysis/api/fir/KtSymbolByFirBuilder.kt | 2 +- .../api/fir/components/KtFirCallResolver.kt | 4 ++-- .../components/KtFirSignatureSubsitutor.kt | 13 ++++++++++++ .../fir/scopes/KtFirDelegatingTypeScope.kt | 4 ++-- .../analysis/api/fir/scopes/firScopeUtils.kt | 4 ++-- .../AbstractKtSignatureSubsitutorImpl.kt | 10 +++++----- .../impl/base/scopes/KtCompositeTypeScope.kt | 2 +- .../kotlin/analysis/api/calls/KtCall.kt | 8 ++++---- .../api/components/KtSignatureSubsitutor.kt | 20 +++++++++---------- .../kotlin/analysis/api/scopes/KtTypeScope.kt | 4 ++-- ...{KtSignature.kt => KtCallableSignature.kt} | 8 ++++---- 12 files changed, 47 insertions(+), 34 deletions(-) create mode 100644 analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSignatureSubsitutor.kt rename analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/{KtSignature.kt => KtCallableSignature.kt} (96%) diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10CallResolver.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10CallResolver.kt index f8829abdbbc..b85fd6636de 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10CallResolver.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10CallResolver.kt @@ -504,7 +504,7 @@ internal class KtFe10CallResolver( } } - private fun createSignature(symbol: KtSymbol, resultingDescriptor: CallableDescriptor): KtSignature<*>? { + private fun createSignature(symbol: KtSymbol, resultingDescriptor: CallableDescriptor): KtCallableSignature<*>? { val returnType = if (resultingDescriptor is ValueParameterDescriptor && resultingDescriptor.isVararg) { val arrayType = resultingDescriptor.returnType ?: return null val primitiveArrayElementType = KotlinBuiltIns.getPrimitiveArrayElementType(arrayType) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt index d11e58e1669..b2946a45bf9 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt @@ -369,7 +369,7 @@ internal class KtSymbolByFirBuilder constructor( } } - fun buildCallableSignature(firSymbol: FirCallableSymbol<*>): KtSignature { + fun buildCallableSignature(firSymbol: FirCallableSymbol<*>): KtCallableSignature { return when (firSymbol) { is FirPropertyAccessorSymbol -> with(analysisSession) { buildPropertyAccessorSymbol(firSymbol).asSignature() } is FirFunctionSymbol<*> -> functionLikeBuilder.buildFunctionLikeSignature(firSymbol) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCallResolver.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCallResolver.kt index a032142beb6..f9a6c4b782c 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCallResolver.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCallResolver.kt @@ -303,7 +303,7 @@ internal class KtFirCallResolver( dispatchReceiver: FirExpression, extensionReceiver: FirExpression, explicitReceiverKind: ExplicitReceiverKind - ): KtPartiallyAppliedSymbol> { + ): KtPartiallyAppliedSymbol> { isImplicitInvoke = true val explicitReceiverPsi = when (psi) { is KtQualifiedExpression -> (psi.selectorExpression as KtCallExpression).calleeExpression @@ -688,7 +688,7 @@ internal class KtFirCallResolver( } @OptIn(SymbolInternals::class) - private fun FirCallableSymbol<*>.toKtSignature(): KtSignature = + private fun FirCallableSymbol<*>.toKtSignature(): KtCallableSignature = firSymbolBuilder.callableBuilder.buildCallableSignature(this) @OptIn(SymbolInternals::class) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSignatureSubsitutor.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSignatureSubsitutor.kt new file mode 100644 index 00000000000..44eebec0285 --- /dev/null +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSignatureSubsitutor.kt @@ -0,0 +1,13 @@ +/* + * Copyright 2010-2022 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.analysis.api.fir.components + +import org.jetbrains.kotlin.analysis.api.fir.KtFirAnalysisSession +import org.jetbrains.kotlin.analysis.api.impl.base.components.AbstractKtSignatureSubsitutorImpl + +internal class KtFirSignatureSubsitutor( + override val analysisSession: KtFirAnalysisSession +) : AbstractKtSignatureSubsitutorImpl(), KtFirAnalysisSessionComponent \ No newline at end of file diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDelegatingTypeScope.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDelegatingTypeScope.kt index 4fea5cfa517..bb046481e97 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDelegatingTypeScope.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/KtFirDelegatingTypeScope.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.analysis.api.scopes.KtScopeNameFilter import org.jetbrains.kotlin.analysis.api.scopes.KtTypeScope import org.jetbrains.kotlin.analysis.api.symbols.KtClassifierSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtConstructorSymbol -import org.jetbrains.kotlin.analysis.api.symbols.KtSignature +import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSignature import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope import org.jetbrains.kotlin.name.Name @@ -36,7 +36,7 @@ internal open class KtFirDelegatingTypeScope( firScope.getClassifierNames() } - override fun getCallableSignatures(nameFilter: KtScopeNameFilter): Sequence> = withValidityAssertion { + override fun getCallableSignatures(nameFilter: KtScopeNameFilter): Sequence> = withValidityAssertion { firScope.getCallableSignatures(getPossibleCallableNames().filter(nameFilter), builder) } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/firScopeUtils.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/firScopeUtils.kt index 743cd212355..51150895215 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/firScopeUtils.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/scopes/firScopeUtils.kt @@ -4,7 +4,7 @@ import org.jetbrains.kotlin.analysis.api.fir.KtSymbolByFirBuilder import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtClassifierSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtConstructorSymbol -import org.jetbrains.kotlin.analysis.api.symbols.KtSignature +import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSignature import org.jetbrains.kotlin.fir.isSubstitutionOverride import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.processClassifiersByName @@ -37,7 +37,7 @@ internal fun FirScope.getCallableSymbols(callableNames: Collection, builde internal fun FirScope.getCallableSignatures(callableNames: Collection, builder: KtSymbolByFirBuilder) = sequence { callableNames.forEach { name -> - val signatures = mutableListOf>() + val signatures = mutableListOf>() processFunctionsByName(name) { firSymbol -> signatures.add(builder.functionLikeBuilder.buildFunctionLikeSignature(firSymbol)) } diff --git a/analysis/analysis-api-impl-base/src/org/jetbrains/kotlin/analysis/api/impl/base/components/AbstractKtSignatureSubsitutorImpl.kt b/analysis/analysis-api-impl-base/src/org/jetbrains/kotlin/analysis/api/impl/base/components/AbstractKtSignatureSubsitutorImpl.kt index 8184e9fa520..c9d63c73e15 100644 --- a/analysis/analysis-api-impl-base/src/org/jetbrains/kotlin/analysis/api/impl/base/components/AbstractKtSignatureSubsitutorImpl.kt +++ b/analysis/analysis-api-impl-base/src/org/jetbrains/kotlin/analysis/api/impl/base/components/AbstractKtSignatureSubsitutorImpl.kt @@ -12,13 +12,13 @@ import org.jetbrains.kotlin.analysis.utils.errors.unexpectedElementError abstract class AbstractKtSignatureSubsitutorImpl : KtSignatureSubsitutor() { @Suppress("UNCHECKED_CAST") - override fun substitute(signature: KtSignature, substitutor: KtSubstitutor): KtSignature { + override fun substitute(signature: KtCallableSignature, substitutor: KtSubstitutor): KtCallableSignature { return when (signature) { is KtFunctionLikeSignature -> { - substitute(signature as KtFunctionLikeSignature, substitutor) as KtSignature + substitute(signature as KtFunctionLikeSignature, substitutor) as KtCallableSignature } is KtVariableLikeSignature -> { - substitute(signature as KtVariableLikeSignature, substitutor) as KtSignature + substitute(signature as KtVariableLikeSignature, substitutor) as KtCallableSignature } } } @@ -50,7 +50,7 @@ abstract class AbstractKtSignatureSubsitutorImpl : KtSignatureSubsitutor() { @Suppress("UNCHECKED_CAST") - override fun substitute(symbol: S, substitutor: KtSubstitutor): KtSignature { + override fun substitute(symbol: S, substitutor: KtSubstitutor): KtCallableSignature { return when (symbol) { is KtFunctionLikeSymbol -> substitute(symbol, substitutor) is KtVariableLikeSymbol -> substitute(symbol, substitutor) @@ -77,7 +77,7 @@ abstract class AbstractKtSignatureSubsitutorImpl : KtSignatureSubsitutor() { ) } - override fun asSignature(symbol: S): KtSignature { + override fun asSignature(symbol: S): KtCallableSignature { return when (symbol) { is KtFunctionLikeSymbol -> asSignature(symbol) is KtVariableLikeSymbol -> asSignature(symbol) diff --git a/analysis/analysis-api-impl-base/src/org/jetbrains/kotlin/analysis/api/impl/base/scopes/KtCompositeTypeScope.kt b/analysis/analysis-api-impl-base/src/org/jetbrains/kotlin/analysis/api/impl/base/scopes/KtCompositeTypeScope.kt index fd70d788bd2..b1ab0b48635 100644 --- a/analysis/analysis-api-impl-base/src/org/jetbrains/kotlin/analysis/api/impl/base/scopes/KtCompositeTypeScope.kt +++ b/analysis/analysis-api-impl-base/src/org/jetbrains/kotlin/analysis/api/impl/base/scopes/KtCompositeTypeScope.kt @@ -37,7 +37,7 @@ class KtCompositeTypeScope( } - override fun getCallableSignatures(nameFilter: KtScopeNameFilter): Sequence> = withValidityAssertion { + override fun getCallableSignatures(nameFilter: KtScopeNameFilter): Sequence> = withValidityAssertion { sequence { subScopes.forEach { yieldAll(it.getCallableSignatures(nameFilter)) } } diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/calls/KtCall.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/calls/KtCall.kt index 9315a78fe85..6169f3c4c44 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/calls/KtCall.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/calls/KtCall.kt @@ -147,7 +147,7 @@ public class KtGenericTypeQualifier( * properties, the missing information is the type of access (read, write, or compound access) to this property. For functions, the missing * information is the value arguments for the call. */ -public class KtPartiallyAppliedSymbol>( +public class KtPartiallyAppliedSymbol>( private val _signature: C, private val _dispatchReceiver: KtReceiverValue?, private val _extensionReceiver: KtReceiverValue?, @@ -171,7 +171,7 @@ public class KtPartiallyAppliedSymbol> KtPartiallyAppliedSymbol.symbol: S get() = signature.symbol +public val > KtPartiallyAppliedSymbol.symbol: S get() = signature.symbol /** * A synthetic call to assert an expression is not null. For example @@ -191,11 +191,11 @@ public class KtCheckNotNullCall( /** * A call to a function, or a simple/compound access to a property. */ -public sealed class KtCallableMemberCall> : KtCall() { +public sealed class KtCallableMemberCall> : KtCall() { public abstract val partiallyAppliedSymbol: KtPartiallyAppliedSymbol } -public val > KtCallableMemberCall.symbol: S get() = partiallyAppliedSymbol.symbol +public val > KtCallableMemberCall.symbol: S get() = partiallyAppliedSymbol.symbol public sealed class KtFunctionCall( private val _argumentMapping: LinkedHashMap>, diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtSignatureSubsitutor.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtSignatureSubsitutor.kt index fe3d19534d5..7bbe9f3f3db 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtSignatureSubsitutor.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtSignatureSubsitutor.kt @@ -11,9 +11,9 @@ import org.jetbrains.kotlin.analysis.api.types.KtSubstitutor public abstract class KtSignatureSubsitutor : KtAnalysisSessionComponent() { public abstract fun substitute( - signature: KtSignature, + signature: KtCallableSignature, substitutor: KtSubstitutor - ): KtSignature + ): KtCallableSignature public abstract fun substitute( signature: KtFunctionLikeSignature, @@ -25,13 +25,13 @@ public abstract class KtSignatureSubsitutor : KtAnalysisSessionComponent() { substitutor: KtSubstitutor ): KtVariableLikeSignature - public abstract fun substitute(symbol: S, substitutor: KtSubstitutor): KtSignature + public abstract fun substitute(symbol: S, substitutor: KtSubstitutor): KtCallableSignature public abstract fun substitute(symbol: S, substitutor: KtSubstitutor): KtFunctionLikeSignature public abstract fun substitute(symbol: S, substitutor: KtSubstitutor): KtVariableLikeSignature - public abstract fun asSignature(symbol: S): KtSignature + public abstract fun asSignature(symbol: S): KtCallableSignature public abstract fun asSignature(symbol: S): KtFunctionLikeSignature @@ -44,7 +44,7 @@ public interface KtSignatureSubsitutorMixIn : KtAnalysisSessionMixIn { * * @see KtSubstitutor.substituteOrSelf */ - public fun KtSignature.substitute(substitutor: KtSubstitutor): KtSignature = + public fun KtCallableSignature.substitute(substitutor: KtSubstitutor): KtCallableSignature = withValidityAssertion { analysisSession.substitutionProvider.substitute(this, substitutor) } /** @@ -68,7 +68,7 @@ public interface KtSignatureSubsitutorMixIn : KtAnalysisSessionMixIn { * * @see KtSubstitutor.substituteOrSelf */ - public fun S.substitute(substitutor: KtSubstitutor): KtSignature = + public fun S.substitute(substitutor: KtSubstitutor): KtCallableSignature = withValidityAssertion { analysisSession.substitutionProvider.substitute(this, substitutor) } /** @@ -88,19 +88,19 @@ public interface KtSignatureSubsitutorMixIn : KtAnalysisSessionMixIn { withValidityAssertion { analysisSession.substitutionProvider.substitute(this, substitutor) } /** - * Creates a new [KtSignature] by given symbol and leave all types intact + * Creates a new [KtCallableSignature] by given symbol and leave all types intact */ - public fun S.asSignature(): KtSignature = + public fun S.asSignature(): KtCallableSignature = withValidityAssertion { analysisSession.substitutionProvider.asSignature(this) } /** - * Creates a new [KtSignature] by given symbol and leave all types intact + * Creates a new [KtCallableSignature] by given symbol and leave all types intact */ public fun S.asSignature(): KtFunctionLikeSignature = withValidityAssertion { analysisSession.substitutionProvider.asSignature(this) } /** - * Creates a new [KtSignature] by given symbol and leave all types intact + * Creates a new [KtCallableSignature] by given symbol and leave all types intact */ public fun S.asSignature(): KtVariableLikeSignature = withValidityAssertion { analysisSession.substitutionProvider.asSignature(this) } diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/scopes/KtTypeScope.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/scopes/KtTypeScope.kt index c585d46a4a5..131b67b5c20 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/scopes/KtTypeScope.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/scopes/KtTypeScope.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.analysis.api.scopes import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtClassifierSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtConstructorSymbol -import org.jetbrains.kotlin.analysis.api.symbols.KtSignature +import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSignature public interface KtTypeScope : KtScopeLike { @@ -16,7 +16,7 @@ public interface KtTypeScope : KtScopeLike { /** * Return a sequence of [KtCallableSymbol] which current scope contain if declaration name matches [nameFilter] */ - public fun getCallableSignatures(nameFilter: KtScopeNameFilter = { true }): Sequence> + public fun getCallableSignatures(nameFilter: KtScopeNameFilter = { true }): Sequence> /** * Return a sequence of [KtClassifierSymbol] which current scope contain if declaration name matches [nameFilter] diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtSignature.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtCallableSignature.kt similarity index 96% rename from analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtSignature.kt rename to analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtCallableSignature.kt index c8d47d33219..846774f7b63 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtSignature.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtCallableSignature.kt @@ -27,9 +27,9 @@ import org.jetbrains.kotlin.utils.addToStdlib.runIf * } * ``` * - * Equality of [KtSignature] is derived from its content. + * Equality of [KtCallableSignature] is derived from its content. */ -public sealed class KtSignature : KtLifetimeOwner { +public sealed class KtCallableSignature : KtLifetimeOwner { /** * The original symbol for this signature. */ @@ -57,7 +57,7 @@ public data class KtFunctionLikeSignature( private val _returnType: KtType, private val _receiverType: KtType?, private val _valueParameters: List>, -) : KtSignature() { +) : KtCallableSignature() { override val token: KtLifetimeToken get() = _symbol.token override val symbol: S @@ -81,7 +81,7 @@ public data class KtVariableLikeSignature( private val _symbol: S, private val _returnType: KtType, private val _receiverType: KtType?, -) : KtSignature() { +) : KtCallableSignature() { override val token: KtLifetimeToken get() = _symbol.token override val symbol: S