Convert array to vararg: extract text variants to constants

This commit is contained in:
Mikhail Glukhikh
2018-05-08 18:09:30 +03:00
parent da92eb63a0
commit e141f4f407
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.getChildOfType import org.jetbrains.kotlin.psi.psiUtil.getChildOfType
class ConvertArrayParameterToVarargIntention : SelfTargetingIntention<KtParameter>( class ConvertArrayParameterToVarargIntention : SelfTargetingIntention<KtParameter>(
KtParameter::class.java, "Convert to vararg parameter" KtParameter::class.java, DEFAULT_TEXT
) { ) {
override fun isApplicableTo(element: KtParameter, caretOffset: Int): Boolean { override fun isApplicableTo(element: KtParameter, caretOffset: Int): Boolean {
@@ -25,7 +25,7 @@ class ConvertArrayParameterToVarargIntention : SelfTargetingIntention<KtParamete
val type = element.descriptor?.type ?: return false val type = element.descriptor?.type ?: return false
return when { return when {
KotlinBuiltIns.isPrimitiveArray(type) -> { KotlinBuiltIns.isPrimitiveArray(type) -> {
text = "Convert to vararg parameter" text = DEFAULT_TEXT
true true
} }
KotlinBuiltIns.isArray(type) -> { KotlinBuiltIns.isArray(type) -> {
@@ -35,9 +35,9 @@ class ConvertArrayParameterToVarargIntention : SelfTargetingIntention<KtParamete
text = if (!typeProjection.hasModifier(KtTokens.OUT_KEYWORD) text = if (!typeProjection.hasModifier(KtTokens.OUT_KEYWORD)
&& !KotlinBuiltIns.isPrimitiveType(element.builtIns.getArrayElementType(type)) && !KotlinBuiltIns.isPrimitiveType(element.builtIns.getArrayElementType(type))
) { ) {
"Convert to vararg parameter (may break code)" BREAKING_TEXT
} else { } else {
"Convert to vararg parameter" DEFAULT_TEXT
} }
true true
} else { } else {
@@ -59,4 +59,10 @@ class ConvertArrayParameterToVarargIntention : SelfTargetingIntention<KtParamete
element.addModifier(KtTokens.VARARG_KEYWORD) element.addModifier(KtTokens.VARARG_KEYWORD)
} }
companion object {
private const val DEFAULT_TEXT = "Convert to vararg parameter"
private const val BREAKING_TEXT = "$DEFAULT_TEXT (may break code)"
}
} }