Minor: Extract name comparison
This commit is contained in:
@@ -60,14 +60,14 @@ abstract class ChangeFunctionSignatureFix(
|
|||||||
protected fun getNewArgumentName(argument: ValueArgument, validator: Function1<String, Boolean>): String {
|
protected fun getNewArgumentName(argument: ValueArgument, validator: Function1<String, Boolean>): String {
|
||||||
val expression = KtPsiUtil.deparenthesize(argument.getArgumentExpression())
|
val expression = KtPsiUtil.deparenthesize(argument.getArgumentExpression())
|
||||||
val argumentName = argument.getArgumentName()?.asName?.asString()
|
val argumentName = argument.getArgumentName()?.asName?.asString()
|
||||||
?: (expression as? KtNameReferenceExpression)?.getReferencedName()?.takeIf { it != "it" && it != "field" }
|
?: (expression as? KtNameReferenceExpression)?.getReferencedName()?.takeIf { !isSpecialName(it) }
|
||||||
|
|
||||||
return when {
|
return when {
|
||||||
argumentName != null -> KotlinNameSuggester.suggestNameByName(argumentName, validator)
|
argumentName != null -> KotlinNameSuggester.suggestNameByName(argumentName, validator)
|
||||||
expression != null -> {
|
expression != null -> {
|
||||||
val bindingContext = expression.analyze(BodyResolveMode.PARTIAL)
|
val bindingContext = expression.analyze(BodyResolveMode.PARTIAL)
|
||||||
val expressionText = expression.text
|
val expressionText = expression.text
|
||||||
if (expressionText == "it" || expressionText == "field") {
|
if (isSpecialName(expressionText)) {
|
||||||
val type = expression.getType(bindingContext)
|
val type = expression.getType(bindingContext)
|
||||||
if (type != null) {
|
if (type != null) {
|
||||||
return KotlinNameSuggester.suggestNamesByType(type, validator, "param").first()
|
return KotlinNameSuggester.suggestNamesByType(type, validator, "param").first()
|
||||||
@@ -79,6 +79,10 @@ abstract class ChangeFunctionSignatureFix(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun isSpecialName(name: String): Boolean {
|
||||||
|
return name == "it" || name == "field"
|
||||||
|
}
|
||||||
|
|
||||||
companion object : KotlinSingleIntentionActionFactoryWithDelegate<KtCallElement, CallableDescriptor>() {
|
companion object : KotlinSingleIntentionActionFactoryWithDelegate<KtCallElement, CallableDescriptor>() {
|
||||||
override fun getElementOfInterest(diagnostic: Diagnostic): KtCallElement? = diagnostic.psiElement.getStrictParentOfType()
|
override fun getElementOfInterest(diagnostic: Diagnostic): KtCallElement? = diagnostic.psiElement.getStrictParentOfType()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user