FIR IDE: Change key of argumentMapping in KtCall to KtExpression.

GitOrigin-RevId: 8a137aa5c9db3f944bba28fb37ee2ef97f48f3bb
This commit is contained in:
Mark Punzalan
2022-01-22 11:09:10 +00:00
committed by intellij-monorepo-bot
parent 2e280c4acb
commit fdcb65e323
2 changed files with 6 additions and 5 deletions
@@ -41,7 +41,7 @@ class HLAddNameToArgumentIntention :
companion object {
fun getArgumentNameIfCanBeUsedForCalls(argument: KtValueArgument, resolvedCall: KtCall): Name? {
val valueParameterSymbol = resolvedCall.argumentMapping[argument] ?: return null
val valueParameterSymbol = resolvedCall.argumentMapping[argument.getArgumentExpression()] ?: return null
if (valueParameterSymbol.isVararg) {
if (argument.languageVersionSettings.supportsFeature(LanguageFeature.ProhibitAssigningSingleElementsToVarargsInNamedForm) &&
!argument.isSpread
@@ -33,10 +33,11 @@ interface FirKotlinUastResolveProviderService : BaseKotlinUastResolveProviderSer
override fun convertValueArguments(ktCallElement: KtCallElement, parent: UElement): List<UNamedExpression>? {
analyseForUast(ktCallElement) {
val argumentMapping = ktCallElement.resolveCall()?.argumentMapping ?: return null
return argumentMapping.entries.map {
val name = it.value.name.asString()
// TODO: it.key.isSpread() ?
KotlinUNamedExpression.create(name, it.key, parent)
return ktCallElement.valueArguments.map {
val parameter = argumentMapping[it.getArgumentExpression()]
val name = parameter?.name?.asString()
// TODO: parameter.isSpread() ?
KotlinUNamedExpression.create(name, it, parent)
}
}
}