Change Signature: Translate JetParameterInfo to Kotlin
This commit is contained in:
@@ -137,16 +137,18 @@ public class AddFunctionParametersFix extends ChangeFunctionSignatureFix {
|
|||||||
JetType parameterType = parameters.get(i).getType();
|
JetType parameterType = parameters.get(i).getType();
|
||||||
|
|
||||||
if (argumentType != null && !JetTypeChecker.DEFAULT.isSubtypeOf(argumentType, parameterType)) {
|
if (argumentType != null && !JetTypeChecker.DEFAULT.isSubtypeOf(argumentType, parameterType)) {
|
||||||
changeSignatureData.getParameters().get(i).setTypeText(IdeDescriptorRenderers.SOURCE_CODE.renderType(argumentType));
|
changeSignatureData.getParameters().get(i).setCurrentTypeText(
|
||||||
|
IdeDescriptorRenderers.SOURCE_CODE.renderType(argumentType)
|
||||||
|
);
|
||||||
typesToShorten.add(argumentType);
|
typesToShorten.add(argumentType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
JetParameterInfo parameterInfo = getNewParameterInfo(bindingContext, argument, validator);
|
JetParameterInfo parameterInfo = getNewParameterInfo(bindingContext, argument, validator);
|
||||||
typesToShorten.add(parameterInfo.getType());
|
typesToShorten.add(parameterInfo.getOriginalType());
|
||||||
|
|
||||||
if (expression != null) {
|
if (expression != null) {
|
||||||
parameterInfo.setDefaultValueText(expression.getText());
|
parameterInfo.setDefaultValueForCall(expression.getText());
|
||||||
}
|
}
|
||||||
|
|
||||||
changeSignatureData.addParameter(parameterInfo);
|
changeSignatureData.addParameter(parameterInfo);
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ public class ChangeFunctionLiteralSignatureFix extends ChangeFunctionSignatureFi
|
|||||||
changeSignatureData.clearParameters();
|
changeSignatureData.clearParameters();
|
||||||
for (JetType type : parameterTypes) {
|
for (JetType type : parameterTypes) {
|
||||||
String name = JetNameSuggester.suggestNames(type, validator, "param")[0];
|
String name = JetNameSuggester.suggestNames(type, validator, "param")[0];
|
||||||
changeSignatureData.addParameter(new JetParameterInfo(name, type));
|
changeSignatureData.addParameter(new JetParameterInfo(-1, name, type, null, "", null, null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -117,8 +117,8 @@ public abstract class ChangeFunctionSignatureFix extends JetIntentionAction<PsiE
|
|||||||
JetExpression expression = argument.getArgumentExpression();
|
JetExpression expression = argument.getArgumentExpression();
|
||||||
JetType type = expression != null ? bindingContext.get(BindingContext.EXPRESSION_TYPE, expression) : null;
|
JetType type = expression != null ? bindingContext.get(BindingContext.EXPRESSION_TYPE, expression) : null;
|
||||||
type = type != null ? type : KotlinBuiltIns.getInstance().getNullableAnyType();
|
type = type != null ? type : KotlinBuiltIns.getInstance().getNullableAnyType();
|
||||||
JetParameterInfo parameterInfo = new JetParameterInfo(name, type);
|
JetParameterInfo parameterInfo = new JetParameterInfo(-1, name, type, null, "", null, null);
|
||||||
parameterInfo.setTypeText(IdeDescriptorRenderers.SOURCE_CODE.renderType(type));
|
parameterInfo.setCurrentTypeText(IdeDescriptorRenderers.SOURCE_CODE.renderType(type));
|
||||||
|
|
||||||
return parameterInfo;
|
return parameterInfo;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -53,10 +53,10 @@ object CreateParameterActionFactory: JetSingleIntentionActionFactory() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val parameterInfo = JetParameterInfo(refExpr.getReferencedName(), paramType)
|
val parameterInfo = JetParameterInfo(name = refExpr.getReferencedName(), type = paramType)
|
||||||
|
|
||||||
fun chooseContainingClass(it: PsiElement): JetClass? {
|
fun chooseContainingClass(it: PsiElement): JetClass? {
|
||||||
parameterInfo.setValOrVar(if (varExpected) JetValVar.Var else JetValVar.Val)
|
parameterInfo.valOrVar = if (varExpected) JetValVar.Var else JetValVar.Val
|
||||||
return it.parents(false).firstIsInstanceOrNull<JetClassOrObject>() as? JetClass
|
return it.parents(false).firstIsInstanceOrNull<JetClassOrObject>() as? JetClass
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-2
@@ -59,8 +59,11 @@ public object CreateParameterByNamedArgumentActionFactory: JetSingleIntentionAct
|
|||||||
} ?: anyType
|
} ?: anyType
|
||||||
if (paramType.hasTypeParametersToAdd(functionDescriptor, context)) return null
|
if (paramType.hasTypeParametersToAdd(functionDescriptor, context)) return null
|
||||||
|
|
||||||
val parameterInfo = JetParameterInfo(name, paramType)
|
val parameterInfo = JetParameterInfo(
|
||||||
parameterInfo.setDefaultValueText(argumentExpression.getText() ?: "")
|
name = name,
|
||||||
|
type = paramType,
|
||||||
|
defaultValueForCall = argumentExpression.getText() ?: ""
|
||||||
|
)
|
||||||
return CreateParameterFromUsageFix(functionDescriptor, context, parameterInfo, argument)
|
return CreateParameterFromUsageFix(functionDescriptor, context, parameterInfo, argument)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -343,7 +343,7 @@ public class JetChangeInfo implements ChangeInfo {
|
|||||||
PsiType type = primaryMethodUpdated
|
PsiType type = primaryMethodUpdated
|
||||||
? currentPsiMethod.getParameterList().getParameters()[pair.getFirst()].getType()
|
? currentPsiMethod.getParameterList().getParameters()[pair.getFirst()].getType()
|
||||||
: PsiType.VOID;
|
: PsiType.VOID;
|
||||||
return new ParameterInfoImpl(info.getOldIndex(), info.getName(), type, info.getDefaultValueText());
|
return new ParameterInfoImpl(info.getOldIndex(), info.getName(), type, info.getDefaultValueForCall());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -390,10 +390,16 @@ public class JetChangeInfo implements ChangeInfo {
|
|||||||
JetType originalType = oldIndex >= 0
|
JetType originalType = oldIndex >= 0
|
||||||
? originalParameterDescriptors.get(oldIndex).getType()
|
? originalParameterDescriptors.get(oldIndex).getType()
|
||||||
: currentType;
|
: currentType;
|
||||||
|
String defaultValue = info.getDefaultValue();
|
||||||
|
|
||||||
JetParameterInfo jetParameterInfo = new JetParameterInfo(oldIndex, info.getName(), originalType, null, null);
|
JetParameterInfo jetParameterInfo =
|
||||||
jetParameterInfo.setDefaultValueText(info.getDefaultValue());
|
new JetParameterInfo(oldIndex,
|
||||||
jetParameterInfo.setTypeText(IdeDescriptorRenderers.SOURCE_CODE.renderType(currentType));
|
info.getName(),
|
||||||
|
originalType, null,
|
||||||
|
defaultValue != null ? defaultValue : "",
|
||||||
|
null,
|
||||||
|
null);
|
||||||
|
jetParameterInfo.setCurrentTypeText(IdeDescriptorRenderers.SOURCE_CODE.renderType(currentType));
|
||||||
return jetParameterInfo;
|
return jetParameterInfo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-9
@@ -40,7 +40,7 @@ public class JetChangeSignatureData(
|
|||||||
) : JetMethodDescriptor {
|
) : JetMethodDescriptor {
|
||||||
private val parameters: MutableList<JetParameterInfo>
|
private val parameters: MutableList<JetParameterInfo>
|
||||||
|
|
||||||
;{
|
;{
|
||||||
val valueParameters = when {
|
val valueParameters = when {
|
||||||
baseDeclaration is JetFunction -> baseDeclaration.getValueParameters()
|
baseDeclaration is JetFunction -> baseDeclaration.getValueParameters()
|
||||||
baseDeclaration is JetClass -> baseDeclaration.getPrimaryConstructorParameters()
|
baseDeclaration is JetClass -> baseDeclaration.getPrimaryConstructorParameters()
|
||||||
@@ -48,15 +48,14 @@ public class JetChangeSignatureData(
|
|||||||
}
|
}
|
||||||
parameters = baseDescriptor.getValueParameters().mapTo(ArrayList()) { parameterDescriptor ->
|
parameters = baseDescriptor.getValueParameters().mapTo(ArrayList()) { parameterDescriptor ->
|
||||||
val jetParameter = valueParameters?.get(parameterDescriptor.getIndex())
|
val jetParameter = valueParameters?.get(parameterDescriptor.getIndex())
|
||||||
val parameterInfo = JetParameterInfo(
|
JetParameterInfo(
|
||||||
parameterDescriptor.getIndex(),
|
originalIndex = parameterDescriptor.getIndex(),
|
||||||
parameterDescriptor.getName().asString(),
|
name = parameterDescriptor.getName().asString(),
|
||||||
parameterDescriptor.getType(),
|
type = parameterDescriptor.getType(),
|
||||||
jetParameter?.getDefaultValue(),
|
defaultValueForParameter = jetParameter?.getDefaultValue(),
|
||||||
jetParameter?.getValOrVarNode()
|
valOrVarNode = jetParameter?.getValOrVarNode(),
|
||||||
|
modifierList = jetParameter?.getModifierList()
|
||||||
)
|
)
|
||||||
parameterInfo.setModifierList(jetParameter?.getModifierList())
|
|
||||||
parameterInfo
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-6
@@ -223,7 +223,7 @@ public class JetChangeSignatureDialog extends ChangeSignatureDialogBase<
|
|||||||
protected JBTableRowEditor getTableEditor(final JTable t, final ParameterTableModelItemBase<JetParameterInfo> item) {
|
protected JBTableRowEditor getTableEditor(final JTable t, final ParameterTableModelItemBase<JetParameterInfo> item) {
|
||||||
return new JBTableRowEditor() {
|
return new JBTableRowEditor() {
|
||||||
private final List<JComponent> components = new ArrayList<JComponent>();
|
private final List<JComponent> components = new ArrayList<JComponent>();
|
||||||
private final boolean defaultValueColumnEnabled = item.parameter.isNewParameter();
|
private final boolean defaultValueColumnEnabled = item.parameter.getIsNewParameter();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void prepareEditor(JTable table, final int row) {
|
public void prepareEditor(JTable table, final int row) {
|
||||||
@@ -414,8 +414,8 @@ public class JetChangeSignatureDialog extends ChangeSignatureDialogBase<
|
|||||||
|
|
||||||
for (int i = 0; i < parameters.size(); i++) {
|
for (int i = 0; i < parameters.size(); i++) {
|
||||||
JetParameterInfo parameter = parameters.get(i);
|
JetParameterInfo parameter = parameters.get(i);
|
||||||
parameter.setTypeText(myParametersTableModel.getItems().get(i).typeCodeFragment.getText().trim());
|
parameter.setCurrentTypeText(myParametersTableModel.getItems().get(i).typeCodeFragment.getText().trim());
|
||||||
parameter.setDefaultValueText(myParametersTableModel.getItems().get(i).defaultValueCodeFragment.getText().trim());
|
parameter.setDefaultValueForCall(myParametersTableModel.getItems().get(i).defaultValueCodeFragment.getText().trim());
|
||||||
}
|
}
|
||||||
|
|
||||||
String returnTypeText = myReturnTypeCodeFragment != null ? myReturnTypeCodeFragment.getText().trim() : "";
|
String returnTypeText = myReturnTypeCodeFragment != null ? myReturnTypeCodeFragment.getText().trim() : "";
|
||||||
@@ -429,9 +429,7 @@ public class JetChangeSignatureDialog extends ChangeSignatureDialogBase<
|
|||||||
List<JetParameterInfo> parameters = myMethod.getParameters();
|
List<JetParameterInfo> parameters = myMethod.getParameters();
|
||||||
for (int i = 0; i < parameters.size(); i++) {
|
for (int i = 0; i < parameters.size(); i++) {
|
||||||
JetParameterInfo info = parameters.get(i);
|
JetParameterInfo info = parameters.get(i);
|
||||||
if (info.isNewParameter()) {
|
if (info.getIsNewParameter()) return i;
|
||||||
return i;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return super.getSelectedIdx();
|
return super.getSelectedIdx();
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -48,7 +48,7 @@ public class JetConstructorParameterTableModel extends JetFunctionParameterTable
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isCellEditable(ParameterTableModelItemBase<JetParameterInfo> item) {
|
public boolean isCellEditable(ParameterTableModelItemBase<JetParameterInfo> item) {
|
||||||
return !item.isEllipsisType() && item.parameter.isNewParameter();
|
return !item.isEllipsisType() && item.parameter.getIsNewParameter();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+3
-3
@@ -46,11 +46,11 @@ public class JetFunctionParameterTableModel extends ParameterTableModelBase<JetP
|
|||||||
@Override
|
@Override
|
||||||
protected ParameterTableModelItemBase<JetParameterInfo> createRowItem(@Nullable JetParameterInfo parameterInfo) {
|
protected ParameterTableModelItemBase<JetParameterInfo> createRowItem(@Nullable JetParameterInfo parameterInfo) {
|
||||||
if (parameterInfo == null) {
|
if (parameterInfo == null) {
|
||||||
parameterInfo = new JetParameterInfo(-1);
|
parameterInfo = new JetParameterInfo(-1, "", null, null, "", null, null);
|
||||||
}
|
}
|
||||||
JetPsiFactory psiFactory = JetPsiFactory(project);
|
JetPsiFactory psiFactory = JetPsiFactory(project);
|
||||||
final PsiCodeFragment paramTypeCodeFragment = psiFactory.createTypeCodeFragment(parameterInfo.getTypeText(), myTypeContext);
|
PsiCodeFragment paramTypeCodeFragment = psiFactory.createTypeCodeFragment(parameterInfo.getTypeText(), myTypeContext);
|
||||||
final PsiCodeFragment defaultValueCodeFragment = psiFactory.createExpressionCodeFragment(parameterInfo.getDefaultValueText(), myDefaultValueContext);
|
PsiCodeFragment defaultValueCodeFragment = psiFactory.createExpressionCodeFragment(parameterInfo.getDefaultValueForCall(), myDefaultValueContext);
|
||||||
return new ParameterTableModelItemBase<JetParameterInfo>(parameterInfo, paramTypeCodeFragment, defaultValueCodeFragment) {
|
return new ParameterTableModelItemBase<JetParameterInfo>(parameterInfo, paramTypeCodeFragment, defaultValueCodeFragment) {
|
||||||
@Override
|
@Override
|
||||||
public boolean isEllipsisType() {
|
public boolean isEllipsisType() {
|
||||||
|
|||||||
+86
-180
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2013 JetBrains s.r.o.
|
* Copyright 2010-2014 JetBrains s.r.o.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -14,212 +14,118 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.jet.plugin.refactoring.changeSignature;
|
package org.jetbrains.jet.plugin.refactoring.changeSignature
|
||||||
|
|
||||||
import com.intellij.lang.ASTNode;
|
import com.intellij.lang.ASTNode
|
||||||
import com.intellij.refactoring.changeSignature.ParameterInfo;
|
import com.intellij.refactoring.changeSignature.ParameterInfo
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.jet.lang.psi.JetExpression
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.jet.lang.types.JetType
|
||||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers
|
||||||
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
import org.jetbrains.jet.plugin.refactoring.changeSignature.usages.JetFunctionDefinitionUsage
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.AnonymousFunctionDescriptor;
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
import org.jetbrains.jet.lang.descriptors.impl.AnonymousFunctionDescriptor
|
||||||
import org.jetbrains.jet.lang.psi.JetModifierList;
|
import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils
|
||||||
import org.jetbrains.jet.lang.psi.JetParameter;
|
import org.jetbrains.jet.lang.psi.JetParameter
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorToSourceUtils;
|
import org.jetbrains.jet.lang.psi.JetModifierList
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
|
||||||
import org.jetbrains.jet.lang.types.TypeSubstitutor;
|
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
|
||||||
import org.jetbrains.jet.plugin.refactoring.changeSignature.usages.JetFunctionDefinitionUsage;
|
|
||||||
import org.jetbrains.jet.plugin.util.IdeDescriptorRenderers;
|
|
||||||
|
|
||||||
import java.util.List;
|
public class JetParameterInfo(
|
||||||
|
val originalIndex: Int = -1,
|
||||||
|
private var name: String,
|
||||||
|
type: JetType? = null,
|
||||||
|
var defaultValueForParameter: JetExpression? = null,
|
||||||
|
var defaultValueForCall: String = "",
|
||||||
|
valOrVarNode: ASTNode? = null,
|
||||||
|
val modifierList: JetModifierList? = null
|
||||||
|
): ParameterInfo {
|
||||||
|
val originalType: JetType? = type
|
||||||
|
var currentTypeText: String = getOldTypeText()
|
||||||
|
var valOrVar: JetValVar = valOrVarNode.toValVar()
|
||||||
|
|
||||||
public class JetParameterInfo implements ParameterInfo {
|
private fun getOldTypeText() = originalType?.let { IdeDescriptorRenderers.SOURCE_CODE.renderType(it) } ?: ""
|
||||||
private String name = "";
|
|
||||||
private final int oldIndex;
|
|
||||||
private JetType type;
|
|
||||||
private String typeText;
|
|
||||||
private String defaultValueText = "";
|
|
||||||
private JetValVar valOrVar;
|
|
||||||
@Nullable private JetExpression defaultValue;
|
|
||||||
@Nullable JetModifierList modifierList;
|
|
||||||
|
|
||||||
public JetParameterInfo(int oldIndex, String name, JetType type, @Nullable JetExpression defaultValue, @Nullable ASTNode valOrVar) {
|
override fun getOldIndex(): Int = originalIndex
|
||||||
this.oldIndex = oldIndex;
|
|
||||||
this.name = name;
|
|
||||||
this.type = type;
|
|
||||||
this.typeText = getOldTypeText();
|
|
||||||
this.defaultValue = defaultValue;
|
|
||||||
|
|
||||||
if (valOrVar == null)
|
public val isNewParameter: Boolean
|
||||||
this.valOrVar = JetValVar.None;
|
get() = originalIndex == -1
|
||||||
else if (valOrVar.getElementType() == JetTokens.VAL_KEYWORD)
|
|
||||||
this.valOrVar = JetValVar.Val;
|
override fun getDefaultValue(): String? = null
|
||||||
else if (valOrVar.getElementType() == JetTokens.VAR_KEYWORD)
|
|
||||||
this.valOrVar = JetValVar.Var;
|
override fun getName(): String = name
|
||||||
else
|
|
||||||
throw new IllegalArgumentException("Unknown val/var token: " + valOrVar.getText());
|
override fun setName(name: String?) {
|
||||||
|
this.name = name ?: ""
|
||||||
}
|
}
|
||||||
|
|
||||||
public JetParameterInfo(String name, JetType type) {
|
override fun getTypeText(): String = currentTypeText
|
||||||
this(-1, name, type, null, null);
|
|
||||||
|
public val isTypeChanged: Boolean get() = getOldTypeText() != currentTypeText
|
||||||
|
|
||||||
|
override fun isUseAnySingleVariable(): Boolean = false
|
||||||
|
|
||||||
|
override fun setUseAnySingleVariable(b: Boolean) {
|
||||||
|
throw UnsupportedOperationException()
|
||||||
}
|
}
|
||||||
|
|
||||||
public JetParameterInfo(int index) {
|
public fun renderType(parameterIndex: Int, inheritedFunction: JetFunctionDefinitionUsage<*>): String {
|
||||||
oldIndex = index;
|
val typeSubstitutor = inheritedFunction.getOrCreateTypeSubstitutor() ?: return currentTypeText
|
||||||
typeText = "";
|
val currentBaseFunction = inheritedFunction.getBaseFunction().getCurrentFunctionDescriptor() ?: return currentTypeText
|
||||||
valOrVar = JetValVar.None;
|
val parameterType = currentBaseFunction.getValueParameters().get(parameterIndex).getType()
|
||||||
|
return parameterType.renderTypeWithSubstitution(typeSubstitutor, currentTypeText, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public fun getInheritedName(inheritedFunction: JetFunctionDefinitionUsage<PsiElement>): String {
|
||||||
public String getName() {
|
if (!inheritedFunction.isInherited()) return name
|
||||||
return name;
|
|
||||||
|
val baseFunction = inheritedFunction.getBaseFunction()
|
||||||
|
val baseFunctionDescriptor = baseFunction.getOriginalFunctionDescriptor()
|
||||||
|
|
||||||
|
val inheritedFunctionDescriptor = inheritedFunction.getOriginalFunctionDescriptor()
|
||||||
|
val inheritedParameterDescriptors = inheritedFunctionDescriptor.getValueParameters()
|
||||||
|
if (originalIndex < 0
|
||||||
|
|| originalIndex >= baseFunctionDescriptor.getValueParameters().size()
|
||||||
|
|| originalIndex >= inheritedParameterDescriptors.size()) return name
|
||||||
|
|
||||||
|
val inheritedParamName = inheritedParameterDescriptors.get(originalIndex).getName().asString()
|
||||||
|
val oldParamName = baseFunctionDescriptor.getValueParameters().get(originalIndex).getName().asString()
|
||||||
|
|
||||||
|
return when {
|
||||||
|
oldParamName == inheritedParamName && inheritedFunctionDescriptor !is AnonymousFunctionDescriptor -> name
|
||||||
|
else -> inheritedParamName
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String renderType(int parameterIndex, @NotNull JetFunctionDefinitionUsage inheritedFunction) {
|
public fun requiresExplicitType(inheritedFunction: JetFunctionDefinitionUsage<PsiElement>): Boolean {
|
||||||
TypeSubstitutor typeSubstitutor = inheritedFunction.getOrCreateTypeSubstitutor();
|
val inheritedFunctionDescriptor = inheritedFunction.getOriginalFunctionDescriptor()
|
||||||
if (typeSubstitutor == null) return typeText;
|
if (inheritedFunctionDescriptor !is AnonymousFunctionDescriptor) return true
|
||||||
|
|
||||||
FunctionDescriptor currentBaseFunction = inheritedFunction.getBaseFunction().getCurrentFunctionDescriptor();
|
if (originalIndex < 0) return !inheritedFunction.hasExpectedType()
|
||||||
if (currentBaseFunction == null) return typeText;
|
|
||||||
|
|
||||||
JetType parameterType = currentBaseFunction.getValueParameters().get(parameterIndex).getType();
|
val inheritedParameterDescriptor = inheritedFunctionDescriptor.getValueParameters().get(originalIndex)
|
||||||
|
val parameter = DescriptorToSourceUtils.descriptorToDeclaration(inheritedParameterDescriptor) as? JetParameter ?: return false
|
||||||
return ChangeSignaturePackage.renderTypeWithSubstitution(parameterType, typeSubstitutor, typeText, true);
|
return parameter.getTypeReference() != null
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getInheritedName(@NotNull JetFunctionDefinitionUsage inheritedFunction) {
|
public fun getDeclarationSignature(parameterIndex: Int, inheritedFunction: JetFunctionDefinitionUsage<PsiElement>): String {
|
||||||
if (!inheritedFunction.isInherited()) return name;
|
val buffer = StringBuilder()
|
||||||
|
|
||||||
JetFunctionDefinitionUsage baseFunction = inheritedFunction.getBaseFunction();
|
|
||||||
FunctionDescriptor baseFunctionDescriptor = baseFunction.getOriginalFunctionDescriptor();
|
|
||||||
|
|
||||||
FunctionDescriptor inheritedFunctionDescriptor = inheritedFunction.getOriginalFunctionDescriptor();
|
|
||||||
List<ValueParameterDescriptor> inheritedParameterDescriptors = inheritedFunctionDescriptor.getValueParameters();
|
|
||||||
if (oldIndex < 0
|
|
||||||
|| oldIndex >= baseFunctionDescriptor.getValueParameters().size()
|
|
||||||
|| oldIndex >= inheritedParameterDescriptors.size()) return name;
|
|
||||||
|
|
||||||
String inheritedParamName = inheritedParameterDescriptors.get(oldIndex).getName().asString();
|
|
||||||
String oldParamName = baseFunctionDescriptor.getValueParameters().get(oldIndex).getName().asString();
|
|
||||||
|
|
||||||
return oldParamName.equals(inheritedParamName) && !(inheritedFunctionDescriptor instanceof AnonymousFunctionDescriptor)
|
|
||||||
? name
|
|
||||||
: inheritedParamName;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getOldIndex() {
|
|
||||||
return oldIndex;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isNewParameter() {
|
|
||||||
return oldIndex == -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public String getDefaultValue() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name != null ? name : "";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isUseAnySingleVariable() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setUseAnySingleVariable(boolean b) {
|
|
||||||
throw new UnsupportedOperationException();
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getOldTypeText() {
|
|
||||||
return IdeDescriptorRenderers.SOURCE_CODE.renderType(type);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getTypeText() {
|
|
||||||
return typeText;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTypeText(String typeText) {
|
|
||||||
this.typeText = typeText;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isTypeChanged() {
|
|
||||||
return !getOldTypeText().equals(typeText);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDefaultValueText() {
|
|
||||||
return defaultValueText;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDefaultValueText(String defaultValueText) {
|
|
||||||
this.defaultValueText = defaultValueText;
|
|
||||||
}
|
|
||||||
|
|
||||||
public JetValVar getValOrVar() {
|
|
||||||
return valOrVar != null ? valOrVar : JetValVar.None;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setValOrVar(JetValVar valOrVar) {
|
|
||||||
this.valOrVar = valOrVar;
|
|
||||||
}
|
|
||||||
|
|
||||||
public JetType getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
public JetModifierList getModifierList() {
|
|
||||||
return modifierList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setModifierList(@Nullable JetModifierList modifierList) {
|
|
||||||
this.modifierList = modifierList;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean requiresExplicitType(@NotNull JetFunctionDefinitionUsage inheritedFunction) {
|
|
||||||
FunctionDescriptor inheritedFunctionDescriptor = inheritedFunction.getOriginalFunctionDescriptor();
|
|
||||||
if (!(inheritedFunctionDescriptor instanceof AnonymousFunctionDescriptor)) return true;
|
|
||||||
|
|
||||||
if (oldIndex < 0) return !inheritedFunction.hasExpectedType();
|
|
||||||
|
|
||||||
ValueParameterDescriptor inheritedParameterDescriptor = inheritedFunctionDescriptor.getValueParameters().get(oldIndex);
|
|
||||||
JetParameter parameter = (JetParameter) DescriptorToSourceUtils.descriptorToDeclaration(inheritedParameterDescriptor);
|
|
||||||
if (parameter == null) return false;
|
|
||||||
|
|
||||||
return parameter.getTypeReference() != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDeclarationSignature(int parameterIndex, @NotNull JetFunctionDefinitionUsage inheritedFunction) {
|
|
||||||
StringBuilder buffer = new StringBuilder();
|
|
||||||
|
|
||||||
if (modifierList != null) {
|
if (modifierList != null) {
|
||||||
buffer.append(modifierList.getText()).append(' ');
|
buffer.append(modifierList.getText()).append(' ')
|
||||||
}
|
}
|
||||||
|
|
||||||
JetValVar valVar = getValOrVar();
|
if (valOrVar != JetValVar.None) {
|
||||||
if (valVar != JetValVar.None) {
|
buffer.append(valOrVar).append(' ')
|
||||||
buffer.append(valVar.toString()).append(' ');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer.append(getInheritedName(inheritedFunction));
|
buffer.append(getInheritedName(inheritedFunction))
|
||||||
|
|
||||||
if (requiresExplicitType(inheritedFunction)) {
|
if (requiresExplicitType(inheritedFunction)) {
|
||||||
buffer.append(": ").append(renderType(parameterIndex, inheritedFunction));
|
buffer.append(": ").append(renderType(parameterIndex, inheritedFunction))
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defaultValue != null && !inheritedFunction.isInherited()) {
|
if (!inheritedFunction.isInherited()) {
|
||||||
buffer.append(" = ").append(defaultValue.getText());
|
defaultValueForParameter?.let { buffer.append(" = ").append(it.getText()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
return buffer.toString();
|
return buffer.toString()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -16,6 +16,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.plugin.refactoring.changeSignature
|
package org.jetbrains.jet.plugin.refactoring.changeSignature
|
||||||
|
|
||||||
|
import com.intellij.lang.ASTNode
|
||||||
|
import org.jetbrains.jet.lexer.JetTokens
|
||||||
|
|
||||||
public enum class JetValVar(val name: String) {
|
public enum class JetValVar(val name: String) {
|
||||||
None: JetValVar("none")
|
None: JetValVar("none")
|
||||||
Val: JetValVar("val")
|
Val: JetValVar("val")
|
||||||
@@ -23,3 +26,12 @@ public enum class JetValVar(val name: String) {
|
|||||||
|
|
||||||
override fun toString(): String = name
|
override fun toString(): String = name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun ASTNode?.toValVar(): JetValVar {
|
||||||
|
return when {
|
||||||
|
this == null -> JetValVar.None
|
||||||
|
getElementType() == JetTokens.VAL_KEYWORD -> JetValVar.Val
|
||||||
|
getElementType() == JetTokens.VAR_KEYWORD -> JetValVar.Var
|
||||||
|
else -> throw IllegalArgumentException("Unknown val/var token: " + getText())
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
-2
@@ -70,7 +70,7 @@ public class JetFunctionCallUsage extends JetUsageInfo<JetCallElement> {
|
|||||||
else
|
else
|
||||||
parametersBuilder.append(',');
|
parametersBuilder.append(',');
|
||||||
|
|
||||||
String defaultValueText = parameterInfo.getDefaultValueText();
|
String defaultValueText = parameterInfo.getDefaultValueForCall();
|
||||||
|
|
||||||
if (isNamedCall) {
|
if (isNamedCall) {
|
||||||
String newName = parameterInfo.getInheritedName(callee);
|
String newName = parameterInfo.getInheritedName(callee);
|
||||||
@@ -96,7 +96,7 @@ public class JetFunctionCallUsage extends JetUsageInfo<JetCallElement> {
|
|||||||
changeArgumentName(argumentNameExpression, parameterInfo);
|
changeArgumentName(argumentNameExpression, parameterInfo);
|
||||||
newArgument.replace(oldArgument);
|
newArgument.replace(oldArgument);
|
||||||
}
|
}
|
||||||
else if (parameterInfo.getDefaultValueText().isEmpty())
|
else if (parameterInfo.getDefaultValueForCall().isEmpty())
|
||||||
newArgument.delete();
|
newArgument.delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -292,7 +292,7 @@ public class JetFunctionDefinitionUsage<T extends PsiElement> extends JetUsageIn
|
|||||||
parameter.addBefore(psiFactory.createWhiteSpace(), firstChild);
|
parameter.addBefore(psiFactory.createWhiteSpace(), firstChild);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parameterInfo.isTypeChanged() && parameter.getTypeReference() != null) {
|
if (parameterInfo.getIsTypeChanged() && parameter.getTypeReference() != null) {
|
||||||
String renderedType = parameterInfo.renderType(parameterIndex, this);
|
String renderedType = parameterInfo.renderType(parameterIndex, this);
|
||||||
parameter.setTypeReference(psiFactory.createType(renderedType));
|
parameter.setTypeReference(psiFactory.createType(renderedType));
|
||||||
}
|
}
|
||||||
@@ -300,7 +300,8 @@ public class JetFunctionDefinitionUsage<T extends PsiElement> extends JetUsageIn
|
|||||||
PsiElement identifier = parameter.getNameIdentifier();
|
PsiElement identifier = parameter.getNameIdentifier();
|
||||||
|
|
||||||
if (identifier != null) {
|
if (identifier != null) {
|
||||||
String newName = parameterInfo.getInheritedName(this);
|
//noinspection unchecked
|
||||||
|
String newName = parameterInfo.getInheritedName((JetFunctionDefinitionUsage<PsiElement>) this);
|
||||||
identifier.replace(psiFactory.createIdentifier(newName));
|
identifier.replace(psiFactory.createIdentifier(newName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+27
-38
@@ -108,8 +108,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
changeInfo.setNewVisibility(Visibilities.PROTECTED);
|
changeInfo.setNewVisibility(Visibilities.PROTECTED);
|
||||||
JetParameterInfo newParameter = new JetParameterInfo(-1, "x", KotlinBuiltIns.getInstance().getAnyType(),
|
JetParameterInfo newParameter = new JetParameterInfo(-1, "x", KotlinBuiltIns.getInstance().getAnyType(),
|
||||||
null, JetPsiFactory(getProject()).createValOrVarNode("val"));
|
null, "12", JetPsiFactory(getProject()).createValOrVarNode("val"), null);
|
||||||
newParameter.setDefaultValueText("12");
|
|
||||||
changeInfo.addParameter(newParameter);
|
changeInfo.addParameter(newParameter);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
@@ -123,7 +122,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
changeInfo.getNewParameters()[0].setName("_x1");
|
changeInfo.getNewParameters()[0].setName("_x1");
|
||||||
changeInfo.getNewParameters()[1].setName("_x2");
|
changeInfo.getNewParameters()[1].setName("_x2");
|
||||||
changeInfo.getNewParameters()[2].setName("_x3");
|
changeInfo.getNewParameters()[2].setName("_x3");
|
||||||
changeInfo.getNewParameters()[1].setTypeText("Float?");
|
changeInfo.getNewParameters()[1].setCurrentTypeText("Float?");
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,7 +135,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
changeInfo.getNewParameters()[0].setName("_x1");
|
changeInfo.getNewParameters()[0].setName("_x1");
|
||||||
changeInfo.getNewParameters()[1].setName("_x2");
|
changeInfo.getNewParameters()[1].setName("_x2");
|
||||||
changeInfo.getNewParameters()[2].setName("_x3");
|
changeInfo.getNewParameters()[2].setName("_x3");
|
||||||
changeInfo.getNewParameters()[1].setTypeText("Double?");
|
changeInfo.getNewParameters()[1].setCurrentTypeText("Double?");
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,7 +155,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
changeInfo.getNewParameters()[0].setName("_x1");
|
changeInfo.getNewParameters()[0].setName("_x1");
|
||||||
changeInfo.getNewParameters()[1].setName("_x2");
|
changeInfo.getNewParameters()[1].setName("_x2");
|
||||||
changeInfo.getNewParameters()[2].setName("_x3");
|
changeInfo.getNewParameters()[2].setName("_x3");
|
||||||
changeInfo.getNewParameters()[1].setTypeText("Float?");
|
changeInfo.getNewParameters()[1].setCurrentTypeText("Float?");
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -166,14 +165,14 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
changeInfo.getNewParameters()[0].setName("_x1");
|
changeInfo.getNewParameters()[0].setName("_x1");
|
||||||
changeInfo.getNewParameters()[1].setName("_x2");
|
changeInfo.getNewParameters()[1].setName("_x2");
|
||||||
changeInfo.getNewParameters()[2].setName("_x3");
|
changeInfo.getNewParameters()[2].setName("_x3");
|
||||||
changeInfo.getNewParameters()[1].setTypeText("Double?");
|
changeInfo.getNewParameters()[1].setCurrentTypeText("Double?");
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testExpressionFunction() throws Exception {
|
public void testExpressionFunction() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
changeInfo.getNewParameters()[0].setName("x1");
|
changeInfo.getNewParameters()[0].setName("x1");
|
||||||
changeInfo.addParameter(new JetParameterInfo("y1", KotlinBuiltIns.getInstance().getIntType()));
|
changeInfo.addParameter(new JetParameterInfo(-1, "y1", KotlinBuiltIns.getInstance().getIntType(), null, "", null, null));
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -182,15 +181,14 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
changeInfo.setNewVisibility(Visibilities.INTERNAL);
|
changeInfo.setNewVisibility(Visibilities.INTERNAL);
|
||||||
changeInfo.setNewParameter(2, changeInfo.getNewParameters()[1]);
|
changeInfo.setNewParameter(2, changeInfo.getNewParameters()[1]);
|
||||||
changeInfo.setNewParameter(1, changeInfo.getNewParameters()[0]);
|
changeInfo.setNewParameter(1, changeInfo.getNewParameters()[0]);
|
||||||
JetParameterInfo newParameter = new JetParameterInfo("x0", KotlinBuiltIns.getInstance().getNullableAnyType());
|
JetParameterInfo newParameter = new JetParameterInfo(-1, "x0", KotlinBuiltIns.getInstance().getNullableAnyType(), null, "null", null, null);
|
||||||
newParameter.setDefaultValueText("null");
|
|
||||||
changeInfo.setNewParameter(0, newParameter);
|
changeInfo.setNewParameter(0, newParameter);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testFakeOverride() throws Exception {
|
public void testFakeOverride() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
JetParameterInfo newParameter = new JetParameterInfo("i", KotlinBuiltIns.getInstance().getIntType());
|
JetParameterInfo newParameter = new JetParameterInfo(-1, "i", KotlinBuiltIns.getInstance().getIntType(), null, "", null, null);
|
||||||
changeInfo.addParameter(newParameter);
|
changeInfo.addParameter(newParameter);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
@@ -198,7 +196,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
public void testFunctionLiteral() throws Exception {
|
public void testFunctionLiteral() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
changeInfo.getNewParameters()[1].setName("y1");
|
changeInfo.getNewParameters()[1].setName("y1");
|
||||||
changeInfo.addParameter(new JetParameterInfo("x", KotlinBuiltIns.getInstance().getAnyType()));
|
changeInfo.addParameter(new JetParameterInfo(-1, "x", KotlinBuiltIns.getInstance().getAnyType(), null, "", null, null));
|
||||||
changeInfo.setNewReturnTypeText("Int");
|
changeInfo.setNewReturnTypeText("Int");
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
@@ -290,15 +288,14 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
|
|
||||||
public void testOverridesInEnumEntries() throws Exception {
|
public void testOverridesInEnumEntries() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
JetParameterInfo newParameter = new JetParameterInfo("s", KotlinBuiltIns.getInstance().getStringType());
|
JetParameterInfo newParameter = new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, "", null, null);
|
||||||
changeInfo.addParameter(newParameter);
|
changeInfo.addParameter(newParameter);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testEnumEntriesWithoutSuperCalls() throws Exception {
|
public void testEnumEntriesWithoutSuperCalls() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
JetParameterInfo newParameter = new JetParameterInfo("n", KotlinBuiltIns.getInstance().getIntType());
|
JetParameterInfo newParameter = new JetParameterInfo(-1, "n", KotlinBuiltIns.getInstance().getIntType(), null, "1", null, null);
|
||||||
newParameter.setDefaultValueText("1");
|
|
||||||
changeInfo.addParameter(newParameter);
|
changeInfo.addParameter(newParameter);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
@@ -307,29 +304,21 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
JetParameterInfo parameterInfo = changeInfo.getNewParameters()[0];
|
JetParameterInfo parameterInfo = changeInfo.getNewParameters()[0];
|
||||||
parameterInfo.setName("n");
|
parameterInfo.setName("n");
|
||||||
parameterInfo.setTypeText("Int");
|
parameterInfo.setCurrentTypeText("Int");
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testConstructorJavaUsages() throws Exception {
|
public void testConstructorJavaUsages() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
JetParameterInfo newParameter = new JetParameterInfo("s", KotlinBuiltIns.getInstance().getStringType());
|
JetParameterInfo newParameter = new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, "\"abc\"", null, null);
|
||||||
newParameter.setDefaultValueText("\"abc\"");
|
|
||||||
changeInfo.addParameter(newParameter);
|
changeInfo.addParameter(newParameter);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testFunctionJavaUsagesAndOverridesAddParam() throws Exception {
|
public void testFunctionJavaUsagesAndOverridesAddParam() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
|
changeInfo.addParameter(new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, "\"abc\"", null, null));
|
||||||
JetParameterInfo param1 = new JetParameterInfo("s", KotlinBuiltIns.getInstance().getStringType());
|
changeInfo.addParameter(new JetParameterInfo(-1, "o", KotlinBuiltIns.getInstance().getNullableAnyType(), null, "\"def\"", null, null));
|
||||||
param1.setDefaultValueText("\"abc\"");
|
|
||||||
changeInfo.addParameter(param1);
|
|
||||||
|
|
||||||
JetParameterInfo param2 = new JetParameterInfo("o", KotlinBuiltIns.getInstance().getNullableAnyType());
|
|
||||||
param2.setDefaultValueText("\"def\"");
|
|
||||||
changeInfo.addParameter(param2);
|
|
||||||
|
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -337,8 +326,8 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
|
|
||||||
JetParameterInfo[] newParameters = changeInfo.getNewParameters();
|
JetParameterInfo[] newParameters = changeInfo.getNewParameters();
|
||||||
newParameters[1].setTypeText("String?");
|
newParameters[1].setCurrentTypeText("String?");
|
||||||
newParameters[2].setTypeText("Any");
|
newParameters[2].setCurrentTypeText("Any");
|
||||||
|
|
||||||
changeInfo.setNewReturnTypeText("String?");
|
changeInfo.setNewReturnTypeText("String?");
|
||||||
|
|
||||||
@@ -349,9 +338,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
|
|
||||||
JetParameterInfo[] newParameters = changeInfo.getNewParameters();
|
JetParameterInfo[] newParameters = changeInfo.getNewParameters();
|
||||||
newParameters[0].setTypeText("String?");
|
newParameters[0].setCurrentTypeText("String?");
|
||||||
newParameters[1].setTypeText("Int");
|
newParameters[1].setCurrentTypeText("Int");
|
||||||
newParameters[2].setTypeText("Long?");
|
newParameters[2].setCurrentTypeText("Long?");
|
||||||
|
|
||||||
changeInfo.setNewReturnTypeText("Any?");
|
changeInfo.setNewReturnTypeText("Any?");
|
||||||
|
|
||||||
@@ -362,9 +351,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
|
|
||||||
JetParameterInfo[] newParameters = changeInfo.getNewParameters();
|
JetParameterInfo[] newParameters = changeInfo.getNewParameters();
|
||||||
newParameters[0].setTypeText("List<C>");
|
newParameters[0].setCurrentTypeText("List<C>");
|
||||||
newParameters[1].setTypeText("A?");
|
newParameters[1].setCurrentTypeText("A?");
|
||||||
newParameters[2].setTypeText("U<B>");
|
newParameters[2].setCurrentTypeText("U<B>");
|
||||||
|
|
||||||
changeInfo.setNewReturnTypeText("U<C>?");
|
changeInfo.setNewReturnTypeText("U<C>?");
|
||||||
|
|
||||||
@@ -408,7 +397,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
@Override
|
@Override
|
||||||
ParameterInfoImpl[] getNewParameters(@NotNull PsiMethod method) {
|
ParameterInfoImpl[] getNewParameters(@NotNull PsiMethod method) {
|
||||||
PsiType paramType = PsiType.getJavaLangString(getPsiManager(), GlobalSearchScope.allScope(getProject()));
|
PsiType paramType = PsiType.getJavaLangString(getPsiManager(), GlobalSearchScope.allScope(getProject()));
|
||||||
return new ParameterInfoImpl[] { new ParameterInfoImpl(-1, "s", paramType) };
|
return new ParameterInfoImpl[] {new ParameterInfoImpl(-1, "s", paramType)};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -555,14 +544,14 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
|
|
||||||
public void testParameterModifiers() throws Exception {
|
public void testParameterModifiers() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
changeInfo.addParameter(new JetParameterInfo("n", KotlinBuiltIns.getInstance().getIntType()));
|
changeInfo.addParameter(new JetParameterInfo(-1, "n", KotlinBuiltIns.getInstance().getIntType(), null, "", null, null));
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testFqNameShortening() throws Exception {
|
public void testFqNameShortening() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
JetParameterInfo parameterInfo = new JetParameterInfo("s", KotlinBuiltIns.getInstance().getAnyType());
|
JetParameterInfo parameterInfo = new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getAnyType(), null, "", null, null);
|
||||||
parameterInfo.setTypeText("kotlin.String");
|
parameterInfo.setCurrentTypeText("kotlin.String");
|
||||||
changeInfo.addParameter(parameterInfo);
|
changeInfo.addParameter(parameterInfo);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user