mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
FIR IDE: Remove KtCallWithArguments and move arguments up to KtCall.
GitOrigin-RevId: 55f437c6e86297e478db74ab0757e36e162ab7cd
This commit is contained in:
committed by
intellij-monorepo-bot
parent
502dce2fce
commit
2e280c4acb
+3
-3
@@ -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) &&
|
||||
|
||||
+1
-2
@@ -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<KtCallElement, Input> = 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
|
||||
|
||||
+1
-3
@@ -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
|
||||
|
||||
+1
-2
@@ -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<UNamedExpression>? {
|
||||
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() ?
|
||||
|
||||
Reference in New Issue
Block a user