Refactoring: Represent call-site default value of JetParameterInfo as JetExpression
This commit is contained in:
@@ -151,7 +151,7 @@ public class AddFunctionParametersFix extends ChangeFunctionSignatureFix {
|
|||||||
typesToShorten.add(parameterInfo.getOriginalType());
|
typesToShorten.add(parameterInfo.getOriginalType());
|
||||||
|
|
||||||
if (expression != null) {
|
if (expression != null) {
|
||||||
parameterInfo.setDefaultValueForCall(expression.getText());
|
parameterInfo.setDefaultValueForCall(expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
descriptor.addParameter(parameterInfo);
|
descriptor.addParameter(parameterInfo);
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class ChangeFunctionLiteralSignatureFix extends ChangeFunctionSignatureFi
|
|||||||
descriptor.clearNonReceiverParameters();
|
descriptor.clearNonReceiverParameters();
|
||||||
for (JetType type : parameterTypes) {
|
for (JetType type : parameterTypes) {
|
||||||
String name = JetNameSuggester.suggestNames(type, validator, "param")[0];
|
String name = JetNameSuggester.suggestNames(type, validator, "param")[0];
|
||||||
descriptor.addParameter(new JetParameterInfo(-1, name, type, null, "", JetValVar.None, null));
|
descriptor.addParameter(new JetParameterInfo(-1, name, type, null, null, JetValVar.None, null));
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ public abstract class ChangeFunctionSignatureFix extends JetIntentionAction<PsiE
|
|||||||
JetExpression expression = argument.getArgumentExpression();
|
JetExpression expression = argument.getArgumentExpression();
|
||||||
JetType type = expression != null ? bindingContext.getType(expression) : null;
|
JetType type = expression != null ? bindingContext.getType(expression) : null;
|
||||||
type = type != null ? type : KotlinBuiltIns.getInstance().getNullableAnyType();
|
type = type != null ? type : KotlinBuiltIns.getInstance().getNullableAnyType();
|
||||||
JetParameterInfo parameterInfo = new JetParameterInfo(-1, name, type, null, "", JetValVar.None, null);
|
JetParameterInfo parameterInfo = new JetParameterInfo(-1, name, type, null, null, JetValVar.None, null);
|
||||||
parameterInfo.setCurrentTypeText(IdeDescriptorRenderers.SOURCE_CODE.renderType(type));
|
parameterInfo.setCurrentTypeText(IdeDescriptorRenderers.SOURCE_CODE.renderType(type));
|
||||||
|
|
||||||
return parameterInfo;
|
return parameterInfo;
|
||||||
|
|||||||
+1
-1
@@ -62,7 +62,7 @@ public object CreateParameterByNamedArgumentActionFactory: JetSingleIntentionAct
|
|||||||
val parameterInfo = JetParameterInfo(
|
val parameterInfo = JetParameterInfo(
|
||||||
name = name,
|
name = name,
|
||||||
type = paramType,
|
type = paramType,
|
||||||
defaultValueForCall = argumentExpression.getText() ?: ""
|
defaultValueForCall = argumentExpression
|
||||||
)
|
)
|
||||||
return CreateParameterFromUsageFix(functionDescriptor, context, parameterInfo, argument)
|
return CreateParameterFromUsageFix(functionDescriptor, context, parameterInfo, argument)
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-2
@@ -23,6 +23,7 @@ import com.intellij.refactoring.changeSignature.ParameterTableModelBase;
|
|||||||
import com.intellij.refactoring.changeSignature.ParameterTableModelItemBase;
|
import com.intellij.refactoring.changeSignature.ParameterTableModelItemBase;
|
||||||
import com.intellij.util.ui.ColumnInfo;
|
import com.intellij.util.ui.ColumnInfo;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.kotlin.psi.JetExpression;
|
||||||
import org.jetbrains.kotlin.psi.JetPsiFactory;
|
import org.jetbrains.kotlin.psi.JetPsiFactory;
|
||||||
|
|
||||||
import static org.jetbrains.kotlin.psi.PsiPackage.JetPsiFactory;
|
import static org.jetbrains.kotlin.psi.PsiPackage.JetPsiFactory;
|
||||||
@@ -43,11 +44,15 @@ public abstract class JetCallableParameterTableModel extends ParameterTableModel
|
|||||||
@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, "", null, null, "", JetValVar.None, null);
|
parameterInfo = new JetParameterInfo(-1, "", null, null, null, JetValVar.None, null);
|
||||||
}
|
}
|
||||||
JetPsiFactory psiFactory = JetPsiFactory(project);
|
JetPsiFactory psiFactory = JetPsiFactory(project);
|
||||||
PsiCodeFragment paramTypeCodeFragment = psiFactory.createTypeCodeFragment(parameterInfo.getTypeText(), myTypeContext);
|
PsiCodeFragment paramTypeCodeFragment = psiFactory.createTypeCodeFragment(parameterInfo.getTypeText(), myTypeContext);
|
||||||
PsiCodeFragment defaultValueCodeFragment = psiFactory.createExpressionCodeFragment(parameterInfo.getDefaultValueForCall(), myDefaultValueContext);
|
JetExpression defaultValueForCall = parameterInfo.getDefaultValueForCall();
|
||||||
|
PsiCodeFragment defaultValueCodeFragment = psiFactory.createExpressionCodeFragment(
|
||||||
|
defaultValueForCall != null ? defaultValueForCall.getText() : "",
|
||||||
|
myDefaultValueContext
|
||||||
|
);
|
||||||
return new ParameterTableModelItemBase<JetParameterInfo>(parameterInfo, paramTypeCodeFragment, defaultValueCodeFragment) {
|
return new ParameterTableModelItemBase<JetParameterInfo>(parameterInfo, paramTypeCodeFragment, defaultValueCodeFragment) {
|
||||||
@Override
|
@Override
|
||||||
public boolean isEllipsisType() {
|
public boolean isEllipsisType() {
|
||||||
|
|||||||
@@ -17,10 +17,8 @@
|
|||||||
package org.jetbrains.kotlin.idea.refactoring.changeSignature
|
package org.jetbrains.kotlin.idea.refactoring.changeSignature
|
||||||
|
|
||||||
import com.intellij.lang.Language
|
import com.intellij.lang.Language
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.lang.java.JavaLanguage
|
||||||
import com.intellij.psi.PsiMethod
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.PsiModifier
|
|
||||||
import com.intellij.psi.PsiType
|
|
||||||
import com.intellij.refactoring.changeSignature.*
|
import com.intellij.refactoring.changeSignature.*
|
||||||
import com.intellij.usageView.UsageInfo
|
import com.intellij.usageView.UsageInfo
|
||||||
import com.intellij.util.VisibilityUtil
|
import com.intellij.util.VisibilityUtil
|
||||||
@@ -34,6 +32,7 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
|||||||
import org.jetbrains.kotlin.lexer.JetTokens
|
import org.jetbrains.kotlin.lexer.JetTokens
|
||||||
import org.jetbrains.kotlin.idea.JetLanguage
|
import org.jetbrains.kotlin.idea.JetLanguage
|
||||||
import org.jetbrains.kotlin.idea.caches.resolve.*
|
import org.jetbrains.kotlin.idea.caches.resolve.*
|
||||||
|
import org.jetbrains.kotlin.idea.core.refactoring.j2k
|
||||||
import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.JetFunctionDefinitionUsage
|
import org.jetbrains.kotlin.idea.refactoring.changeSignature.usages.JetFunctionDefinitionUsage
|
||||||
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
|
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
|
||||||
import java.util.HashMap
|
import java.util.HashMap
|
||||||
@@ -255,7 +254,7 @@ public class JetChangeInfo(
|
|||||||
else -> -1
|
else -> -1
|
||||||
}
|
}
|
||||||
|
|
||||||
ParameterInfoImpl(javaOldIndex, info.getName(), type, info.defaultValueForCall)
|
ParameterInfoImpl(javaOldIndex, info.getName(), type, info.defaultValueForCall?.getText() ?: "")
|
||||||
}.copyToArray()
|
}.copyToArray()
|
||||||
|
|
||||||
val returnType = if (isPrimaryMethodUpdated) currentPsiMethod.getReturnType() else PsiType.VOID
|
val returnType = if (isPrimaryMethodUpdated) currentPsiMethod.getReturnType() else PsiType.VOID
|
||||||
@@ -298,10 +297,18 @@ public fun ChangeInfo.toJetChangeInfo(originalChangeSignatureDescriptor: JetMeth
|
|||||||
val oldIndex = info.getOldIndex()
|
val oldIndex = info.getOldIndex()
|
||||||
val currentType = parameterDescriptors[i].getType()
|
val currentType = parameterDescriptors[i].getType()
|
||||||
|
|
||||||
|
val defaultValueText = info.getDefaultValue()
|
||||||
|
val defaultValueExpr = if (getLanguage().`is`(JavaLanguage.INSTANCE) && !defaultValueText.isNullOrEmpty()) {
|
||||||
|
PsiElementFactory.SERVICE.getInstance(method.getProject())
|
||||||
|
.createExpressionFromText(defaultValueText!!, null)
|
||||||
|
.j2k(originalChangeSignatureDescriptor.baseDeclaration)
|
||||||
|
}
|
||||||
|
else null
|
||||||
|
|
||||||
with(JetParameterInfo(originalIndex = oldIndex,
|
with(JetParameterInfo(originalIndex = oldIndex,
|
||||||
name = info.getName(),
|
name = info.getName(),
|
||||||
type = if (oldIndex >= 0) originalParameterDescriptors[oldIndex].getType() else currentType,
|
type = if (oldIndex >= 0) originalParameterDescriptors[oldIndex].getType() else currentType,
|
||||||
defaultValueForCall = info.getDefaultValue() ?: "")) {
|
defaultValueForCall = defaultValueExpr)) {
|
||||||
currentTypeText = IdeDescriptorRenderers.SOURCE_CODE.renderType(currentType)
|
currentTypeText = IdeDescriptorRenderers.SOURCE_CODE.renderType(currentType)
|
||||||
this
|
this
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-1
@@ -54,6 +54,7 @@ import org.jetbrains.kotlin.descriptors.Visibilities;
|
|||||||
import org.jetbrains.kotlin.descriptors.Visibility;
|
import org.jetbrains.kotlin.descriptors.Visibility;
|
||||||
import org.jetbrains.kotlin.idea.JetFileType;
|
import org.jetbrains.kotlin.idea.JetFileType;
|
||||||
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle;
|
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle;
|
||||||
|
import org.jetbrains.kotlin.psi.JetExpressionCodeFragment;
|
||||||
import org.jetbrains.kotlin.psi.JetTypeCodeFragment;
|
import org.jetbrains.kotlin.psi.JetTypeCodeFragment;
|
||||||
import org.jetbrains.kotlin.types.JetType;
|
import org.jetbrains.kotlin.types.JetType;
|
||||||
import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetMethodDescriptor.Kind;
|
import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetMethodDescriptor.Kind;
|
||||||
@@ -456,7 +457,9 @@ 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.setCurrentTypeText(myParametersTableModel.getItems().get(i).typeCodeFragment.getText().trim());
|
parameter.setCurrentTypeText(myParametersTableModel.getItems().get(i).typeCodeFragment.getText().trim());
|
||||||
parameter.setDefaultValueForCall(myParametersTableModel.getItems().get(i).defaultValueCodeFragment.getText().trim());
|
JetExpressionCodeFragment codeFragment =
|
||||||
|
(JetExpressionCodeFragment) myParametersTableModel.getItems().get(i).defaultValueCodeFragment;
|
||||||
|
parameter.setDefaultValueForCall(codeFragment.getContentElement());
|
||||||
}
|
}
|
||||||
|
|
||||||
String returnTypeText = myReturnTypeCodeFragment != null ? myReturnTypeCodeFragment.getText().trim() : "";
|
String returnTypeText = myReturnTypeCodeFragment != null ? myReturnTypeCodeFragment.getText().trim() : "";
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public class JetParameterInfo(
|
|||||||
private var name: String,
|
private var name: String,
|
||||||
type: JetType? = null,
|
type: JetType? = null,
|
||||||
var defaultValueForParameter: JetExpression? = null,
|
var defaultValueForParameter: JetExpression? = null,
|
||||||
var defaultValueForCall: String = "",
|
var defaultValueForCall: JetExpression? = null,
|
||||||
var valOrVar: JetValVar = JetValVar.None,
|
var valOrVar: JetValVar = JetValVar.None,
|
||||||
val modifierList: JetModifierList? = null
|
val modifierList: JetModifierList? = null
|
||||||
): ParameterInfo {
|
): ParameterInfo {
|
||||||
|
|||||||
+5
-3
@@ -100,7 +100,8 @@ public class JetFunctionCallUsage extends JetUsageInfo<JetCallElement> {
|
|||||||
else
|
else
|
||||||
parametersBuilder.append(',');
|
parametersBuilder.append(',');
|
||||||
|
|
||||||
String defaultValueText = parameterInfo.getDefaultValueForCall();
|
JetExpression defaultValueForCall = parameterInfo.getDefaultValueForCall();
|
||||||
|
String defaultValueText = defaultValueForCall != null ? defaultValueForCall.getText() : "";
|
||||||
|
|
||||||
if (isNamedCall) {
|
if (isNamedCall) {
|
||||||
String newName = parameterInfo.getInheritedName(callee);
|
String newName = parameterInfo.getInheritedName(callee);
|
||||||
@@ -157,7 +158,7 @@ public class JetFunctionCallUsage extends JetUsageInfo<JetCallElement> {
|
|||||||
: oldArgument.asElement());
|
: oldArgument.asElement());
|
||||||
}
|
}
|
||||||
// TODO: process default arguments in the middle
|
// TODO: process default arguments in the middle
|
||||||
else if (parameterInfo.getDefaultValueForCall().isEmpty()) {
|
else if (parameterInfo.getDefaultValueForCall() == null) {
|
||||||
if (parameterInfo.getDefaultValueForParameter() != null) {
|
if (parameterInfo.getDefaultValueForParameter() != null) {
|
||||||
JetPsiUtil.deleteElementWithDelimiters(newArgument);
|
JetPsiUtil.deleteElementWithDelimiters(newArgument);
|
||||||
}
|
}
|
||||||
@@ -183,9 +184,10 @@ public class JetFunctionCallUsage extends JetUsageInfo<JetCallElement> {
|
|||||||
if (newReceiverInfo != null) {
|
if (newReceiverInfo != null) {
|
||||||
ValueArgument receiverArgument = argumentMap.get(newReceiverInfo.getOldIndex());
|
ValueArgument receiverArgument = argumentMap.get(newReceiverInfo.getOldIndex());
|
||||||
JetExpression extensionReceiverExpression = receiverArgument != null ? receiverArgument.getArgumentExpression() : null;
|
JetExpression extensionReceiverExpression = receiverArgument != null ? receiverArgument.getArgumentExpression() : null;
|
||||||
|
JetExpression defaultValueForCall = newReceiverInfo.getDefaultValueForCall();
|
||||||
String receiverText = extensionReceiverExpression != null
|
String receiverText = extensionReceiverExpression != null
|
||||||
? extensionReceiverExpression.getText()
|
? extensionReceiverExpression.getText()
|
||||||
: newReceiverInfo.getDefaultValueForCall();
|
: defaultValueForCall != null ? defaultValueForCall.getText() : "";
|
||||||
if (receiverText.isEmpty()) {
|
if (receiverText.isEmpty()) {
|
||||||
receiverText = "_";
|
receiverText = "_";
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -125,7 +125,7 @@ fun IntroduceParameterDescriptor.performRefactoring() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val parameterInfo = JetParameterInfo(name = newParameterName,
|
val parameterInfo = JetParameterInfo(name = newParameterName,
|
||||||
defaultValueForCall = if (withDefaultValue) "" else newArgumentValue.getText(),
|
defaultValueForCall = if (withDefaultValue) null else newArgumentValue,
|
||||||
defaultValueForParameter = if (withDefaultValue) newArgumentValue else null,
|
defaultValueForParameter = if (withDefaultValue) newArgumentValue else null,
|
||||||
valOrVar = valVar)
|
valOrVar = valVar)
|
||||||
parameterInfo.currentTypeText = newParameterTypeText
|
parameterInfo.currentTypeText = newParameterTypeText
|
||||||
|
|||||||
@@ -80,6 +80,11 @@ import com.intellij.lang.java.JavaLanguage
|
|||||||
import com.intellij.codeInsight.daemon.impl.quickfix.CreateFromUsageUtils
|
import com.intellij.codeInsight.daemon.impl.quickfix.CreateFromUsageUtils
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde
|
||||||
|
import org.jetbrains.kotlin.idea.j2k.IdeaResolverForConverter
|
||||||
|
import org.jetbrains.kotlin.idea.j2k.J2kPostProcessor
|
||||||
|
import org.jetbrains.kotlin.j2k.ConverterSettings
|
||||||
|
import org.jetbrains.kotlin.j2k.IdeaReferenceSearcher
|
||||||
|
import org.jetbrains.kotlin.j2k.JavaToKotlinConverter
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.*
|
import org.jetbrains.kotlin.psi.psiUtil.*
|
||||||
|
|
||||||
fun <T: Any> PsiElement.getAndRemoveCopyableUserData(key: Key<T>): T? {
|
fun <T: Any> PsiElement.getAndRemoveCopyableUserData(key: Key<T>): T? {
|
||||||
@@ -552,3 +557,17 @@ fun createJavaClass(klass: JetClass, targetClass: PsiClass): PsiMember {
|
|||||||
|
|
||||||
return javaClass
|
return javaClass
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun PsiExpression.j2k(postProcessingContext: PsiElement): JetExpression? {
|
||||||
|
if (getLanguage() != JavaLanguage.INSTANCE) return null
|
||||||
|
|
||||||
|
val project = getProject()
|
||||||
|
val j2kConverter = JavaToKotlinConverter(project,
|
||||||
|
ConverterSettings.defaultSettings,
|
||||||
|
IdeaReferenceSearcher,
|
||||||
|
IdeaResolverForConverter,
|
||||||
|
J2kPostProcessor(true))
|
||||||
|
val inputElements = Collections.singletonList(JavaToKotlinConverter.InputElement(this, postProcessingContext))
|
||||||
|
val text = j2kConverter.elementsToKotlin(inputElements).results.singleOrNull()?.text ?: return null
|
||||||
|
return JetPsiFactory(getProject()).createExpression(text)
|
||||||
|
}
|
||||||
+60
-23
@@ -41,6 +41,7 @@ import org.jetbrains.kotlin.idea.test.PluginTestCaseBase;
|
|||||||
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
|
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
|
||||||
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle;
|
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle;
|
||||||
import org.jetbrains.kotlin.psi.JetElement;
|
import org.jetbrains.kotlin.psi.JetElement;
|
||||||
|
import org.jetbrains.kotlin.psi.JetPsiFactory;
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext;
|
import org.jetbrains.kotlin.resolve.BindingContext;
|
||||||
import org.jetbrains.kotlin.resolve.dataClassUtils.DataClassUtilsPackage;
|
import org.jetbrains.kotlin.resolve.dataClassUtils.DataClassUtilsPackage;
|
||||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode;
|
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode;
|
||||||
@@ -107,8 +108,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
public void testAddConstructorVisibility() throws Exception {
|
public void testAddConstructorVisibility() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
changeInfo.setNewVisibility(Visibilities.PROTECTED);
|
changeInfo.setNewVisibility(Visibilities.PROTECTED);
|
||||||
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
JetParameterInfo newParameter = new JetParameterInfo(-1, "x", KotlinBuiltIns.getInstance().getAnyType(),
|
JetParameterInfo newParameter = new JetParameterInfo(-1, "x", KotlinBuiltIns.getInstance().getAnyType(),
|
||||||
null, "12", JetValVar.Val, null);
|
null, psiFactory.createExpression("12"), JetValVar.Val, null);
|
||||||
changeInfo.addParameter(newParameter);
|
changeInfo.addParameter(newParameter);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
@@ -172,7 +174,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
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(-1, "y1", KotlinBuiltIns.getInstance().getIntType(), null, "", JetValVar.None, null));
|
changeInfo.addParameter(new JetParameterInfo(-1, "y1", KotlinBuiltIns.getInstance().getIntType(), null, null, JetValVar.None, null));
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,14 +183,16 @@ 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(-1, "x0", KotlinBuiltIns.getInstance().getNullableAnyType(), null, "null", JetValVar.None, null);
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
JetParameterInfo newParameter =
|
||||||
|
new JetParameterInfo(-1, "x0", KotlinBuiltIns.getInstance().getNullableAnyType(), null, psiFactory.createExpression("null"), JetValVar.None, 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(-1, "i", KotlinBuiltIns.getInstance().getIntType(), null, "", JetValVar.None, null);
|
JetParameterInfo newParameter = new JetParameterInfo(-1, "i", KotlinBuiltIns.getInstance().getIntType(), null, null, JetValVar.None, null);
|
||||||
changeInfo.addParameter(newParameter);
|
changeInfo.addParameter(newParameter);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
@@ -196,7 +200,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(-1, "x", KotlinBuiltIns.getInstance().getAnyType(), null, "", JetValVar.None, null));
|
changeInfo.addParameter(new JetParameterInfo(-1, "x", KotlinBuiltIns.getInstance().getAnyType(), null, null, JetValVar.None, null));
|
||||||
changeInfo.setNewReturnTypeText("Int");
|
changeInfo.setNewReturnTypeText("Int");
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
@@ -288,14 +292,16 @@ 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(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, "", JetValVar.None, null);
|
JetParameterInfo newParameter = new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, null, JetValVar.None, 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(-1, "n", KotlinBuiltIns.getInstance().getIntType(), null, "1", JetValVar.None, null);
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
JetParameterInfo newParameter =
|
||||||
|
new JetParameterInfo(-1, "n", KotlinBuiltIns.getInstance().getIntType(), null, psiFactory.createExpression("1"), JetValVar.None, null);
|
||||||
changeInfo.addParameter(newParameter);
|
changeInfo.addParameter(newParameter);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
@@ -310,16 +316,22 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
|
|
||||||
public void testConstructorJavaUsages() throws Exception {
|
public void testConstructorJavaUsages() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
JetParameterInfo newParameter = new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, "\"abc\"", JetValVar.None, null);
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
JetParameterInfo newParameter =
|
||||||
|
new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, psiFactory.createExpression("\"abc\""), JetValVar.None, null);
|
||||||
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\"", JetValVar.None, null));
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
changeInfo.addParameter(
|
changeInfo.addParameter(
|
||||||
new JetParameterInfo(-1, "o", KotlinBuiltIns.getInstance().getNullableAnyType(), null, "\"def\"", JetValVar.None, null));
|
new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, psiFactory.createExpression("\"abc\""), JetValVar.None, null)
|
||||||
|
);
|
||||||
|
changeInfo.addParameter(
|
||||||
|
new JetParameterInfo(-1, "o", KotlinBuiltIns.getInstance().getNullableAnyType(), null, psiFactory.createExpression("\"def\""), JetValVar.None, null)
|
||||||
|
);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -555,13 +567,13 @@ 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(-1, "n", KotlinBuiltIns.getInstance().getIntType(), null, "", JetValVar.None, null));
|
changeInfo.addParameter(new JetParameterInfo(-1, "n", KotlinBuiltIns.getInstance().getIntType(), null, null, JetValVar.None, 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(-1, "s", KotlinBuiltIns.getInstance().getAnyType(), null, "", JetValVar.None, null);
|
JetParameterInfo parameterInfo = new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getAnyType(), null, null, JetValVar.None, null);
|
||||||
parameterInfo.setCurrentTypeText("kotlin.String");
|
parameterInfo.setCurrentTypeText("kotlin.String");
|
||||||
changeInfo.addParameter(parameterInfo);
|
changeInfo.addParameter(parameterInfo);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
@@ -575,7 +587,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
|
|
||||||
public void testParameterListAddParam() throws Exception {
|
public void testParameterListAddParam() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
changeInfo.addParameter(new JetParameterInfo(-1, "l", KotlinBuiltIns.getInstance().getLongType(), null, "", JetValVar.None, null));
|
changeInfo.addParameter(new JetParameterInfo(-1, "l", KotlinBuiltIns.getInstance().getLongType(), null, null, JetValVar.None, null));
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -595,7 +607,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
|
|
||||||
public void testAddNewReceiver() throws Exception {
|
public void testAddNewReceiver() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
JetParameterInfo parameterInfo = new JetParameterInfo(-1, "_", KotlinBuiltIns.getInstance().getAnyType(), null, "X(0)", JetValVar.None, null);
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
JetParameterInfo parameterInfo =
|
||||||
|
new JetParameterInfo(-1, "_", KotlinBuiltIns.getInstance().getAnyType(), null, psiFactory.createExpression("X(0)"), JetValVar.None, null);
|
||||||
parameterInfo.setCurrentTypeText("X");
|
parameterInfo.setCurrentTypeText("X");
|
||||||
changeInfo.setReceiverParameterInfo(parameterInfo);
|
changeInfo.setReceiverParameterInfo(parameterInfo);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
@@ -603,7 +617,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
|
|
||||||
public void testAddNewReceiverForMember() throws Exception {
|
public void testAddNewReceiverForMember() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
JetParameterInfo parameterInfo = new JetParameterInfo(-1, "_", KotlinBuiltIns.getInstance().getAnyType(), null, "X(0)", JetValVar.None, null);
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
JetParameterInfo parameterInfo =
|
||||||
|
new JetParameterInfo(-1, "_", KotlinBuiltIns.getInstance().getAnyType(), null, psiFactory.createExpression("X(0)"), JetValVar.None, null);
|
||||||
parameterInfo.setCurrentTypeText("X");
|
parameterInfo.setCurrentTypeText("X");
|
||||||
changeInfo.setReceiverParameterInfo(parameterInfo);
|
changeInfo.setReceiverParameterInfo(parameterInfo);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
@@ -611,7 +627,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
|
|
||||||
public void testAddNewReceiverForMemberConflict() throws Exception {
|
public void testAddNewReceiverForMemberConflict() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
JetParameterInfo parameterInfo = new JetParameterInfo(-1, "_", KotlinBuiltIns.getInstance().getAnyType(), null, "X(0)", JetValVar.None, null);
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
JetParameterInfo parameterInfo =
|
||||||
|
new JetParameterInfo(-1, "_", KotlinBuiltIns.getInstance().getAnyType(), null, psiFactory.createExpression("X(0)"), JetValVar.None, null);
|
||||||
parameterInfo.setCurrentTypeText("X");
|
parameterInfo.setCurrentTypeText("X");
|
||||||
changeInfo.setReceiverParameterInfo(parameterInfo);
|
changeInfo.setReceiverParameterInfo(parameterInfo);
|
||||||
doTestConflict(changeInfo);
|
doTestConflict(changeInfo);
|
||||||
@@ -619,7 +637,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
|
|
||||||
public void testAddNewReceiverConflict() throws Exception {
|
public void testAddNewReceiverConflict() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
JetParameterInfo parameterInfo = new JetParameterInfo(-1, "_", KotlinBuiltIns.getInstance().getAnyType(), null, "X(0)", JetValVar.None, null);
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
JetParameterInfo parameterInfo =
|
||||||
|
new JetParameterInfo(-1, "_", KotlinBuiltIns.getInstance().getAnyType(), null, psiFactory.createExpression("X(0)"), JetValVar.None, null);
|
||||||
parameterInfo.setCurrentTypeText("X");
|
parameterInfo.setCurrentTypeText("X");
|
||||||
changeInfo.setReceiverParameterInfo(parameterInfo);
|
changeInfo.setReceiverParameterInfo(parameterInfo);
|
||||||
doTestConflict(changeInfo);
|
doTestConflict(changeInfo);
|
||||||
@@ -730,7 +750,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
|
|
||||||
public void testSecondaryConstructor() throws Exception {
|
public void testSecondaryConstructor() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
changeInfo.addParameter(new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, "\"foo\"", JetValVar.None, null));
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
changeInfo.addParameter(
|
||||||
|
new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, psiFactory.createExpression("\"foo\""), JetValVar.None, null));
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -754,25 +776,37 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
|
|
||||||
public void testPrimaryConstructorByThisRef() throws Exception {
|
public void testPrimaryConstructorByThisRef() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
changeInfo.addParameter(new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, "\"foo\"", JetValVar.None, null));
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
changeInfo.addParameter(
|
||||||
|
new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, psiFactory.createExpression("\"foo\""), JetValVar.None, null)
|
||||||
|
);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testPrimaryConstructorBySuperRef() throws Exception {
|
public void testPrimaryConstructorBySuperRef() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
changeInfo.addParameter(new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, "\"foo\"", JetValVar.None, null));
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
changeInfo.addParameter(
|
||||||
|
new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, psiFactory.createExpression("\"foo\""), JetValVar.None, null)
|
||||||
|
);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSecondaryConstructorByThisRef() throws Exception {
|
public void testSecondaryConstructorByThisRef() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
changeInfo.addParameter(new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, "\"foo\"", JetValVar.None, null));
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
changeInfo.addParameter(
|
||||||
|
new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, psiFactory.createExpression("\"foo\""), JetValVar.None, null)
|
||||||
|
);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSecondaryConstructorBySuperRef() throws Exception {
|
public void testSecondaryConstructorBySuperRef() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
changeInfo.addParameter(new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, "\"foo\"", JetValVar.None, null));
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
changeInfo.addParameter(
|
||||||
|
new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, psiFactory.createExpression("\"foo\""), JetValVar.None, null)
|
||||||
|
);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -796,7 +830,10 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
|
|||||||
|
|
||||||
public void testNoConflictWithReceiverName() throws Exception {
|
public void testNoConflictWithReceiverName() throws Exception {
|
||||||
JetChangeInfo changeInfo = getChangeInfo();
|
JetChangeInfo changeInfo = getChangeInfo();
|
||||||
changeInfo.addParameter(new JetParameterInfo(-1, "i", KotlinBuiltIns.getInstance().getIntType(), null, "0", JetValVar.None, null));
|
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
|
||||||
|
changeInfo.addParameter(
|
||||||
|
new JetParameterInfo(-1, "i", KotlinBuiltIns.getInstance().getIntType(), null, psiFactory.createExpression("0"), JetValVar.None, null)
|
||||||
|
);
|
||||||
doTest(changeInfo);
|
doTest(changeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user