From 2e280c4acbd6e5f300d8a97e00868180fe7eac21 Mon Sep 17 00:00:00 2001 From: Mark Punzalan Date: Wed, 11 Aug 2021 06:34:13 +0000 Subject: [PATCH] FIR IDE: Remove KtCallWithArguments and move arguments up to KtCall. GitOrigin-RevId: 55f437c6e86297e478db74ab0757e36e162ab7cd --- .../idea/fir/intentions/HLAddNameToArgumentIntention.kt | 6 +++--- .../fir/intentions/HLAddNamesToCallArgumentsIntention.kt | 3 +-- .../intentions/HLAddNamesToFollowingArgumentsIntention.kt | 4 +--- .../uast/kotlin/FirKotlinUastResolveProviderService.kt | 3 +-- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/plugins/kotlin/fir/src/org/jetbrains/kotlin/idea/fir/intentions/HLAddNameToArgumentIntention.kt b/plugins/kotlin/fir/src/org/jetbrains/kotlin/idea/fir/intentions/HLAddNameToArgumentIntention.kt index 4643452068aa..d0c3285edd38 100644 --- a/plugins/kotlin/fir/src/org/jetbrains/kotlin/idea/fir/intentions/HLAddNameToArgumentIntention.kt +++ b/plugins/kotlin/fir/src/org/jetbrains/kotlin/idea/fir/intentions/HLAddNameToArgumentIntention.kt @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.idea.fir.api.applicator.HLApplicatorInputProvider import org.jetbrains.kotlin.idea.fir.api.applicator.inputProvider import org.jetbrains.kotlin.idea.fir.applicators.AddArgumentNamesApplicators import org.jetbrains.kotlin.idea.fir.applicators.ApplicabilityRanges -import org.jetbrains.kotlin.idea.frontend.api.calls.KtCallWithArguments +import org.jetbrains.kotlin.idea.frontend.api.calls.KtCall import org.jetbrains.kotlin.idea.frontend.api.calls.getSingleCandidateSymbolOrNull import org.jetbrains.kotlin.idea.project.languageVersionSettings import org.jetbrains.kotlin.name.Name @@ -27,7 +27,7 @@ class HLAddNameToArgumentIntention : if (shouldBeLastUnnamed && element != argumentList.arguments.last { !it.isNamed() }) return@inputProvider null val callElement = argumentList.parent as? KtCallElement ?: return@inputProvider null - val resolvedCall = callElement.resolveCall() as? KtCallWithArguments ?: return@inputProvider null + val resolvedCall = callElement.resolveCall() ?: return@inputProvider null if (resolvedCall.targetFunction.getSingleCandidateSymbolOrNull()?.hasStableParameterNames != true) { return@inputProvider null @@ -40,7 +40,7 @@ class HLAddNameToArgumentIntention : element is KtContainerNode || super.skipProcessingFurtherElementsAfter(element) companion object { - fun getArgumentNameIfCanBeUsedForCalls(argument: KtValueArgument, resolvedCall: KtCallWithArguments): Name? { + fun getArgumentNameIfCanBeUsedForCalls(argument: KtValueArgument, resolvedCall: KtCall): Name? { val valueParameterSymbol = resolvedCall.argumentMapping[argument] ?: return null if (valueParameterSymbol.isVararg) { if (argument.languageVersionSettings.supportsFeature(LanguageFeature.ProhibitAssigningSingleElementsToVarargsInNamedForm) && diff --git a/plugins/kotlin/fir/src/org/jetbrains/kotlin/idea/fir/intentions/HLAddNamesToCallArgumentsIntention.kt b/plugins/kotlin/fir/src/org/jetbrains/kotlin/idea/fir/intentions/HLAddNamesToCallArgumentsIntention.kt index c302fc9993d0..5ef825664be7 100644 --- a/plugins/kotlin/fir/src/org/jetbrains/kotlin/idea/fir/intentions/HLAddNamesToCallArgumentsIntention.kt +++ b/plugins/kotlin/fir/src/org/jetbrains/kotlin/idea/fir/intentions/HLAddNamesToCallArgumentsIntention.kt @@ -8,7 +8,6 @@ import org.jetbrains.kotlin.idea.fir.api.applicator.HLApplicatorInputProvider import org.jetbrains.kotlin.idea.fir.api.applicator.applicabilityRanges import org.jetbrains.kotlin.idea.fir.api.applicator.inputProvider import org.jetbrains.kotlin.idea.fir.applicators.AddArgumentNamesApplicators -import org.jetbrains.kotlin.idea.frontend.api.calls.KtCallWithArguments import org.jetbrains.kotlin.idea.frontend.api.calls.getSingleCandidateSymbolOrNull import org.jetbrains.kotlin.idea.util.textRangeIn import org.jetbrains.kotlin.psi.* @@ -31,7 +30,7 @@ class HLAddNamesToCallArgumentsIntention : } override val inputProvider: HLApplicatorInputProvider = inputProvider { element -> - val resolvedCall = element.resolveCall() as? KtCallWithArguments ?: return@inputProvider null + val resolvedCall = element.resolveCall() ?: return@inputProvider null if (resolvedCall.targetFunction.getSingleCandidateSymbolOrNull()?.hasStableParameterNames != true) { return@inputProvider null diff --git a/plugins/kotlin/fir/src/org/jetbrains/kotlin/idea/fir/intentions/HLAddNamesToFollowingArgumentsIntention.kt b/plugins/kotlin/fir/src/org/jetbrains/kotlin/idea/fir/intentions/HLAddNamesToFollowingArgumentsIntention.kt index 19943c82ad44..335fa6dbe2b0 100644 --- a/plugins/kotlin/fir/src/org/jetbrains/kotlin/idea/fir/intentions/HLAddNamesToFollowingArgumentsIntention.kt +++ b/plugins/kotlin/fir/src/org/jetbrains/kotlin/idea/fir/intentions/HLAddNamesToFollowingArgumentsIntention.kt @@ -4,13 +4,11 @@ package org.jetbrains.kotlin.idea.fir.intentions import com.intellij.codeInsight.intention.LowPriorityAction import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.api.applicator.applicator -import org.jetbrains.kotlin.idea.api.applicator.with import org.jetbrains.kotlin.idea.fir.api.AbstractHLIntention import org.jetbrains.kotlin.idea.fir.api.applicator.HLApplicatorInputProvider import org.jetbrains.kotlin.idea.fir.api.applicator.inputProvider import org.jetbrains.kotlin.idea.fir.applicators.AddArgumentNamesApplicators import org.jetbrains.kotlin.idea.fir.applicators.ApplicabilityRanges -import org.jetbrains.kotlin.idea.frontend.api.calls.KtCallWithArguments import org.jetbrains.kotlin.idea.frontend.api.calls.getSingleCandidateSymbolOrNull import org.jetbrains.kotlin.psi.KtCallElement import org.jetbrains.kotlin.psi.KtLambdaArgument @@ -27,7 +25,7 @@ class HLAddNamesToFollowingArgumentsIntention : val argumentList = element.parent as? KtValueArgumentList ?: return@inputProvider null val callElement = argumentList.parent as? KtCallElement ?: return@inputProvider null - val resolvedCall = callElement.resolveCall() as? KtCallWithArguments ?: return@inputProvider null + val resolvedCall = callElement.resolveCall() ?: return@inputProvider null if (resolvedCall.targetFunction.getSingleCandidateSymbolOrNull()?.hasStableParameterNames != true) { return@inputProvider null diff --git a/plugins/kotlin/uast/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinUastResolveProviderService.kt b/plugins/kotlin/uast/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinUastResolveProviderService.kt index b7dfcd81c5fd..c13a9996af37 100644 --- a/plugins/kotlin/uast/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinUastResolveProviderService.kt +++ b/plugins/kotlin/uast/uast-kotlin-fir/src/org/jetbrains/uast/kotlin/FirKotlinUastResolveProviderService.kt @@ -6,7 +6,6 @@ import com.intellij.psi.* import org.jetbrains.kotlin.idea.frontend.api.KtTypeArgumentWithVariance import org.jetbrains.kotlin.idea.frontend.api.analyseForUast import org.jetbrains.kotlin.idea.frontend.api.calls.KtAnnotationCall -import org.jetbrains.kotlin.idea.frontend.api.calls.KtCallWithArguments import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtNamedSymbol import org.jetbrains.kotlin.idea.frontend.api.types.* @@ -33,7 +32,7 @@ interface FirKotlinUastResolveProviderService : BaseKotlinUastResolveProviderSer override fun convertValueArguments(ktCallElement: KtCallElement, parent: UElement): List? { analyseForUast(ktCallElement) { - val argumentMapping = (ktCallElement.resolveCall() as? KtCallWithArguments)?.argumentMapping ?: return null + val argumentMapping = ktCallElement.resolveCall()?.argumentMapping ?: return null return argumentMapping.entries.map { val name = it.value.name.asString() // TODO: it.key.isSpread() ?