Use of List's instead of Array's
This commit is contained in:
+1
-1
@@ -102,7 +102,7 @@ private fun buildTemplate(lambdaType: JetType, explicitParameterTypes: Boolean,
|
||||
template.addTextSegment(", ")
|
||||
}
|
||||
//TODO: check for names in scope
|
||||
template.addVariable(ParameterNameExpression(KotlinNameSuggester.suggestNamesByType(parameterType, { true }, "p")), true)
|
||||
template.addVariable(ParameterNameExpression(KotlinNameSuggester.suggestNamesByType(parameterType, { true }, "p").toTypedArray()), true)
|
||||
if (explicitParameterTypes) {
|
||||
template.addTextSegment(": " + IdeDescriptorRenderers.SOURCE_CODE.renderType(parameterType))
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ public object KotlinNameSuggester {
|
||||
* *
|
||||
* @return possible names
|
||||
*/
|
||||
public fun suggestNamesByExpressionAndType(expression: JetExpression, validator: (String) -> Boolean, defaultName: String?): Array<String> {
|
||||
public fun suggestNamesByExpressionAndType(expression: JetExpression, validator: (String) -> Boolean, defaultName: String?): List<String> {
|
||||
val result = ArrayList<String>()
|
||||
|
||||
val bindingContext = expression.analyze(BodyResolveMode.FULL)
|
||||
@@ -64,10 +64,10 @@ public object KotlinNameSuggester {
|
||||
result.addName(defaultName, validator)
|
||||
}
|
||||
|
||||
return ArrayUtil.toStringArray(result)
|
||||
return result
|
||||
}
|
||||
|
||||
public fun suggestNamesByType(type: JetType, validator: (String) -> Boolean, defaultName: String? = null): Array<String> {
|
||||
public fun suggestNamesByType(type: JetType, validator: (String) -> Boolean, defaultName: String? = null): List<String> {
|
||||
val result = ArrayList<String>()
|
||||
|
||||
result.addNamesByType(type, validator)
|
||||
@@ -76,10 +76,10 @@ public object KotlinNameSuggester {
|
||||
result.addName(defaultName, validator)
|
||||
}
|
||||
|
||||
return ArrayUtil.toStringArray(result)
|
||||
return result
|
||||
}
|
||||
|
||||
public fun suggestNamesByExpressionOnly(expression: JetExpression, validator: (String) -> Boolean, defaultName: String? = null): Array<String> {
|
||||
public fun suggestNamesByExpressionOnly(expression: JetExpression, validator: (String) -> Boolean, defaultName: String? = null): List<String> {
|
||||
val result = ArrayList<String>()
|
||||
|
||||
result.addNamesByExpression(expression, validator)
|
||||
@@ -88,17 +88,17 @@ public object KotlinNameSuggester {
|
||||
result.addName(defaultName, validator)
|
||||
}
|
||||
|
||||
return ArrayUtil.toStringArray(result)
|
||||
return result
|
||||
}
|
||||
|
||||
private val COMMON_TYPE_PARAMETER_NAMES = listOf("T", "U", "V", "W", "X", "Y", "Z")
|
||||
|
||||
public fun suggestNamesForTypeParameters(count: Int, validator: (String) -> Boolean): Array<String> {
|
||||
public fun suggestNamesForTypeParameters(count: Int, validator: (String) -> Boolean): List<String> {
|
||||
val result = ArrayList<String>()
|
||||
for (i in 0..count - 1) {
|
||||
result.add(suggestNameByMultipleNames(COMMON_TYPE_PARAMETER_NAMES, validator))
|
||||
}
|
||||
return ArrayUtil.toStringArray(result)
|
||||
return result
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -69,7 +69,7 @@ public class IterateExpressionIntention : JetSelfTargetingIntention<JetExpressio
|
||||
val bodyPlaceholder = (forExpression.getBody() as JetBlockExpression).getStatements().single()
|
||||
|
||||
val templateBuilder = TemplateBuilderImpl(forExpression)
|
||||
templateBuilder.replaceElement(forExpression.getLoopParameter()!!, ChooseStringExpression(names.asList()))
|
||||
templateBuilder.replaceElement(forExpression.getLoopParameter()!!, ChooseStringExpression(names))
|
||||
templateBuilder.replaceElement(bodyPlaceholder, ConstantNode(""), false)
|
||||
templateBuilder.setEndVariableAfter(bodyPlaceholder)
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ public class ChangeFunctionLiteralSignatureFix extends ChangeFunctionSignatureFi
|
||||
CollectingNameValidator validator = new CollectingNameValidator();
|
||||
descriptor.clearNonReceiverParameters();
|
||||
for (JetType type : parameterTypes) {
|
||||
String name = KotlinNameSuggester.INSTANCE$.suggestNamesByType(type, validator, "param")[0];
|
||||
String name = KotlinNameSuggester.INSTANCE$.suggestNamesByType(type, validator, "param").get(0);
|
||||
descriptor.addParameter(
|
||||
new JetParameterInfo(functionDescriptor, -1, name, type, null, null, JetValVar.None, null)
|
||||
);
|
||||
|
||||
@@ -105,7 +105,7 @@ public abstract class ChangeFunctionSignatureFix extends JetIntentionAction<PsiE
|
||||
return KotlinNameSuggester.INSTANCE$.suggestNameByName(argumentName.getAsName().asString(), validator);
|
||||
}
|
||||
else if (expression != null) {
|
||||
return KotlinNameSuggester.INSTANCE$.suggestNamesByExpressionAndType(expression, validator, "param")[0];
|
||||
return KotlinNameSuggester.INSTANCE$.suggestNamesByExpressionAndType(expression, validator, "param").get(0);
|
||||
}
|
||||
|
||||
return KotlinNameSuggester.INSTANCE$.suggestNameByName("param", validator);
|
||||
|
||||
+1
-1
@@ -821,7 +821,7 @@ class CallableBuilder(val config: CallableBuilderConfiguration) {
|
||||
val parameterTypeToNamesMap = HashMap<String, Array<String>>()
|
||||
typeCandidates[parameter.typeInfo]!!.forEach { typeCandidate ->
|
||||
val suggestedNames = KotlinNameSuggester.suggestNamesByType(typeCandidate.theType, { true })
|
||||
parameterTypeToNamesMap[typeCandidate.renderedType!!] = suggestedNames
|
||||
parameterTypeToNamesMap[typeCandidate.renderedType!!] = suggestedNames.toTypedArray()
|
||||
}
|
||||
|
||||
// add expression to builder
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ abstract class TypeInfo(val variance: Variance) {
|
||||
|
||||
class ByExpression(val expression: JetExpression, variance: Variance): TypeInfo(variance) {
|
||||
override val possibleNamesFromExpression: Array<String> by Delegates.lazy {
|
||||
KotlinNameSuggester.suggestNamesByExpressionOnly(expression, { true })
|
||||
KotlinNameSuggester.suggestNamesByExpressionOnly(expression, { true }).toTypedArray()
|
||||
}
|
||||
|
||||
override fun getPossibleTypes(builder: CallableBuilder): List<JetType> =
|
||||
|
||||
+1
-1
@@ -235,7 +235,7 @@ public open class KotlinIntroduceParameterHandler(
|
||||
else -> null
|
||||
} ?: throw AssertionError("Body element is not found: ${targetParent.getElementTextWithContext()}")
|
||||
val nameValidator = NameValidatorImpl(body, null, NameValidatorImpl.Target.PROPERTIES)
|
||||
val suggestedNames = linkedSetOf(*KotlinNameSuggester.suggestNamesByType(replacementType, nameValidator, "p"))
|
||||
val suggestedNames = KotlinNameSuggester.suggestNamesByType(replacementType, nameValidator, "p")
|
||||
|
||||
val parametersUsages = findInternalUsagesOfParametersAndReceiver(targetParent, functionDescriptor)
|
||||
|
||||
|
||||
+5
-5
@@ -197,12 +197,12 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase {
|
||||
calculateAnchor(commonParent, commonContainer, allReplaces),
|
||||
NameValidatorImpl.Target.PROPERTIES
|
||||
);
|
||||
final String[] suggestedNames = KotlinNameSuggester.INSTANCE$.suggestNamesByExpressionAndType(expression, validator, "value");
|
||||
final List<String> suggestedNames = KotlinNameSuggester.INSTANCE$.suggestNamesByExpressionAndType(expression, validator, "value");
|
||||
final Ref<JetProperty> propertyRef = new Ref<JetProperty>();
|
||||
final ArrayList<JetExpression> references = new ArrayList<JetExpression>();
|
||||
final Ref<JetExpression> reference = new Ref<JetExpression>();
|
||||
final Runnable introduceRunnable = introduceVariable(
|
||||
expression, suggestedNames, allReplaces, commonContainer,
|
||||
expression, suggestedNames.get(0), allReplaces, commonContainer,
|
||||
commonParent, replaceOccurrence, propertyRef, references,
|
||||
reference, finalNoTypeInference, expressionType, bindingContext);
|
||||
CommandProcessor.getInstance().executeCommand(project, new Runnable() {
|
||||
@@ -251,7 +251,7 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase {
|
||||
|
||||
private static Runnable introduceVariable(
|
||||
final JetExpression expression,
|
||||
final String[] suggestedNames,
|
||||
final String nameSuggestion,
|
||||
final List<JetExpression> allReplaces,
|
||||
final PsiElement commonContainer,
|
||||
final PsiElement commonParent,
|
||||
@@ -303,7 +303,7 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase {
|
||||
PsiElement commonParent,
|
||||
List<JetExpression> allReplaces
|
||||
) {
|
||||
String variableText = "val " + suggestedNames[0];
|
||||
String variableText = "val " + nameSuggestion;
|
||||
if (noTypeInference) {
|
||||
variableText += ": " + IdeDescriptorRenderers.SOURCE_CODE.renderType(expressionType);
|
||||
}
|
||||
@@ -449,7 +449,7 @@ public class KotlinIntroduceVariableHandler extends KotlinIntroduceHandlerBase {
|
||||
private JetExpression replaceExpression(JetExpression replace) {
|
||||
boolean isActualExpression = expression == replace;
|
||||
|
||||
JetExpression replacement = psiFactory.createExpression(suggestedNames[0]);
|
||||
JetExpression replacement = psiFactory.createExpression(nameSuggestion);
|
||||
JetExpression result;
|
||||
if (PsiUtilPackage.isFunctionLiteralOutsideParentheses(replace)) {
|
||||
JetFunctionLiteralArgument functionLiteralArgument =
|
||||
|
||||
+2
-3
@@ -44,7 +44,7 @@ public class KotlinVariableInplaceIntroducer(
|
||||
val addedVariable: JetProperty,
|
||||
val originalExpression: JetExpression?,
|
||||
val occurrencesToReplace: Array<JetExpression>,
|
||||
val suggestedNames: Array<out String>,
|
||||
suggestedNames: List<String>,
|
||||
val isVar: Boolean,
|
||||
val doNotChangeVar: Boolean,
|
||||
val expressionType: JetType?,
|
||||
@@ -59,8 +59,7 @@ public class KotlinVariableInplaceIntroducer(
|
||||
project,
|
||||
editor
|
||||
) {
|
||||
companion object {
|
||||
}
|
||||
private val suggestedNames = suggestedNames.toTypedArray()
|
||||
|
||||
init {
|
||||
initFormComponents {
|
||||
|
||||
+1
-2
@@ -69,8 +69,7 @@ public class JetNameSuggesterTest : LightCodeInsightFixtureTestCase() {
|
||||
try {
|
||||
JetRefactoringUtil.selectExpression(myFixture.getEditor(), file, object : JetRefactoringUtil.SelectExpressionCallback {
|
||||
override fun run(expression: JetExpression) {
|
||||
val names = KotlinNameSuggester.suggestNamesByExpressionAndType(expression, { true }, "value")
|
||||
Arrays.sort(names)
|
||||
val names = KotlinNameSuggester.suggestNamesByExpressionAndType(expression, { true }, "value").sort()
|
||||
val result = StringUtil.join(names, "\n").trim()
|
||||
assertEquals(expectedResultText, result)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user