Refactoring: Represent call-site default value of JetParameterInfo as JetExpression

This commit is contained in:
Alexey Sedunov
2015-04-21 21:17:31 +03:00
parent 8918ddbb0a
commit 720e696f6b
12 changed files with 114 additions and 41 deletions
@@ -151,7 +151,7 @@ public class AddFunctionParametersFix extends ChangeFunctionSignatureFix {
typesToShorten.add(parameterInfo.getOriginalType());
if (expression != null) {
parameterInfo.setDefaultValueForCall(expression.getText());
parameterInfo.setDefaultValueForCall(expression);
}
descriptor.addParameter(parameterInfo);
@@ -72,7 +72,7 @@ public class ChangeFunctionLiteralSignatureFix extends ChangeFunctionSignatureFi
descriptor.clearNonReceiverParameters();
for (JetType type : parameterTypes) {
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;
}
@@ -120,7 +120,7 @@ public abstract class ChangeFunctionSignatureFix extends JetIntentionAction<PsiE
JetExpression expression = argument.getArgumentExpression();
JetType type = expression != null ? bindingContext.getType(expression) : null;
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));
return parameterInfo;
@@ -62,7 +62,7 @@ public object CreateParameterByNamedArgumentActionFactory: JetSingleIntentionAct
val parameterInfo = JetParameterInfo(
name = name,
type = paramType,
defaultValueForCall = argumentExpression.getText() ?: ""
defaultValueForCall = argumentExpression
)
return CreateParameterFromUsageFix(functionDescriptor, context, parameterInfo, argument)
}
@@ -23,6 +23,7 @@ import com.intellij.refactoring.changeSignature.ParameterTableModelBase;
import com.intellij.refactoring.changeSignature.ParameterTableModelItemBase;
import com.intellij.util.ui.ColumnInfo;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.psi.JetExpression;
import org.jetbrains.kotlin.psi.JetPsiFactory;
import static org.jetbrains.kotlin.psi.PsiPackage.JetPsiFactory;
@@ -43,11 +44,15 @@ public abstract class JetCallableParameterTableModel extends ParameterTableModel
@Override
protected ParameterTableModelItemBase<JetParameterInfo> createRowItem(@Nullable JetParameterInfo parameterInfo) {
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);
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) {
@Override
public boolean isEllipsisType() {
@@ -17,10 +17,8 @@
package org.jetbrains.kotlin.idea.refactoring.changeSignature
import com.intellij.lang.Language
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiMethod
import com.intellij.psi.PsiModifier
import com.intellij.psi.PsiType
import com.intellij.lang.java.JavaLanguage
import com.intellij.psi.*
import com.intellij.refactoring.changeSignature.*
import com.intellij.usageView.UsageInfo
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.idea.JetLanguage
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.util.IdeDescriptorRenderers
import java.util.HashMap
@@ -255,7 +254,7 @@ public class JetChangeInfo(
else -> -1
}
ParameterInfoImpl(javaOldIndex, info.getName(), type, info.defaultValueForCall)
ParameterInfoImpl(javaOldIndex, info.getName(), type, info.defaultValueForCall?.getText() ?: "")
}.copyToArray()
val returnType = if (isPrimaryMethodUpdated) currentPsiMethod.getReturnType() else PsiType.VOID
@@ -298,10 +297,18 @@ public fun ChangeInfo.toJetChangeInfo(originalChangeSignatureDescriptor: JetMeth
val oldIndex = info.getOldIndex()
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,
name = info.getName(),
type = if (oldIndex >= 0) originalParameterDescriptors[oldIndex].getType() else currentType,
defaultValueForCall = info.getDefaultValue() ?: "")) {
defaultValueForCall = defaultValueExpr)) {
currentTypeText = IdeDescriptorRenderers.SOURCE_CODE.renderType(currentType)
this
}
@@ -54,6 +54,7 @@ import org.jetbrains.kotlin.descriptors.Visibilities;
import org.jetbrains.kotlin.descriptors.Visibility;
import org.jetbrains.kotlin.idea.JetFileType;
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle;
import org.jetbrains.kotlin.psi.JetExpressionCodeFragment;
import org.jetbrains.kotlin.psi.JetTypeCodeFragment;
import org.jetbrains.kotlin.types.JetType;
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++) {
JetParameterInfo parameter = parameters.get(i);
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() : "";
@@ -33,7 +33,7 @@ public class JetParameterInfo(
private var name: String,
type: JetType? = null,
var defaultValueForParameter: JetExpression? = null,
var defaultValueForCall: String = "",
var defaultValueForCall: JetExpression? = null,
var valOrVar: JetValVar = JetValVar.None,
val modifierList: JetModifierList? = null
): ParameterInfo {
@@ -100,7 +100,8 @@ public class JetFunctionCallUsage extends JetUsageInfo<JetCallElement> {
else
parametersBuilder.append(',');
String defaultValueText = parameterInfo.getDefaultValueForCall();
JetExpression defaultValueForCall = parameterInfo.getDefaultValueForCall();
String defaultValueText = defaultValueForCall != null ? defaultValueForCall.getText() : "";
if (isNamedCall) {
String newName = parameterInfo.getInheritedName(callee);
@@ -157,7 +158,7 @@ public class JetFunctionCallUsage extends JetUsageInfo<JetCallElement> {
: oldArgument.asElement());
}
// TODO: process default arguments in the middle
else if (parameterInfo.getDefaultValueForCall().isEmpty()) {
else if (parameterInfo.getDefaultValueForCall() == null) {
if (parameterInfo.getDefaultValueForParameter() != null) {
JetPsiUtil.deleteElementWithDelimiters(newArgument);
}
@@ -183,9 +184,10 @@ public class JetFunctionCallUsage extends JetUsageInfo<JetCallElement> {
if (newReceiverInfo != null) {
ValueArgument receiverArgument = argumentMap.get(newReceiverInfo.getOldIndex());
JetExpression extensionReceiverExpression = receiverArgument != null ? receiverArgument.getArgumentExpression() : null;
JetExpression defaultValueForCall = newReceiverInfo.getDefaultValueForCall();
String receiverText = extensionReceiverExpression != null
? extensionReceiverExpression.getText()
: newReceiverInfo.getDefaultValueForCall();
: defaultValueForCall != null ? defaultValueForCall.getText() : "";
if (receiverText.isEmpty()) {
receiverText = "_";
}
@@ -125,7 +125,7 @@ fun IntroduceParameterDescriptor.performRefactoring() {
}
val parameterInfo = JetParameterInfo(name = newParameterName,
defaultValueForCall = if (withDefaultValue) "" else newArgumentValue.getText(),
defaultValueForCall = if (withDefaultValue) null else newArgumentValue,
defaultValueForParameter = if (withDefaultValue) newArgumentValue else null,
valOrVar = valVar)
parameterInfo.currentTypeText = newParameterTypeText
@@ -80,6 +80,11 @@ import com.intellij.lang.java.JavaLanguage
import com.intellij.codeInsight.daemon.impl.quickfix.CreateFromUsageUtils
import com.intellij.psi.*
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.*
fun <T: Any> PsiElement.getAndRemoveCopyableUserData(key: Key<T>): T? {
@@ -552,3 +557,17 @@ fun createJavaClass(klass: JetClass, targetClass: PsiClass): PsiMember {
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)
}
@@ -41,6 +41,7 @@ import org.jetbrains.kotlin.idea.test.PluginTestCaseBase;
import org.jetbrains.kotlin.idea.caches.resolve.ResolvePackage;
import org.jetbrains.kotlin.idea.refactoring.JetRefactoringBundle;
import org.jetbrains.kotlin.psi.JetElement;
import org.jetbrains.kotlin.psi.JetPsiFactory;
import org.jetbrains.kotlin.resolve.BindingContext;
import org.jetbrains.kotlin.resolve.dataClassUtils.DataClassUtilsPackage;
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode;
@@ -107,8 +108,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testAddConstructorVisibility() throws Exception {
JetChangeInfo changeInfo = getChangeInfo();
changeInfo.setNewVisibility(Visibilities.PROTECTED);
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
JetParameterInfo newParameter = new JetParameterInfo(-1, "x", KotlinBuiltIns.getInstance().getAnyType(),
null, "12", JetValVar.Val, null);
null, psiFactory.createExpression("12"), JetValVar.Val, null);
changeInfo.addParameter(newParameter);
doTest(changeInfo);
}
@@ -172,7 +174,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testExpressionFunction() throws Exception {
JetChangeInfo changeInfo = getChangeInfo();
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);
}
@@ -181,14 +183,16 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
changeInfo.setNewVisibility(Visibilities.INTERNAL);
changeInfo.setNewParameter(2, changeInfo.getNewParameters()[1]);
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);
doTest(changeInfo);
}
public void testFakeOverride() throws Exception {
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);
doTest(changeInfo);
}
@@ -196,7 +200,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testFunctionLiteral() throws Exception {
JetChangeInfo changeInfo = getChangeInfo();
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");
doTest(changeInfo);
}
@@ -288,14 +292,16 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testOverridesInEnumEntries() throws Exception {
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);
doTest(changeInfo);
}
public void testEnumEntriesWithoutSuperCalls() throws Exception {
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);
doTest(changeInfo);
}
@@ -310,16 +316,22 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testConstructorJavaUsages() throws Exception {
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);
doTest(changeInfo);
}
public void testFunctionJavaUsagesAndOverridesAddParam() throws Exception {
JetChangeInfo changeInfo = getChangeInfo();
changeInfo.addParameter(new JetParameterInfo(-1, "s", KotlinBuiltIns.getInstance().getStringType(), null, "\"abc\"", JetValVar.None, null));
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
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);
}
@@ -555,13 +567,13 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testParameterModifiers() throws Exception {
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);
}
public void testFqNameShortening() throws Exception {
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");
changeInfo.addParameter(parameterInfo);
doTest(changeInfo);
@@ -575,7 +587,7 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testParameterListAddParam() throws Exception {
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);
}
@@ -595,7 +607,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testAddNewReceiver() throws Exception {
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");
changeInfo.setReceiverParameterInfo(parameterInfo);
doTest(changeInfo);
@@ -603,7 +617,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testAddNewReceiverForMember() throws Exception {
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");
changeInfo.setReceiverParameterInfo(parameterInfo);
doTest(changeInfo);
@@ -611,7 +627,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testAddNewReceiverForMemberConflict() throws Exception {
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");
changeInfo.setReceiverParameterInfo(parameterInfo);
doTestConflict(changeInfo);
@@ -619,7 +637,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testAddNewReceiverConflict() throws Exception {
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");
changeInfo.setReceiverParameterInfo(parameterInfo);
doTestConflict(changeInfo);
@@ -730,7 +750,9 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testSecondaryConstructor() throws Exception {
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);
}
@@ -754,25 +776,37 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testPrimaryConstructorByThisRef() throws Exception {
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);
}
public void testPrimaryConstructorBySuperRef() throws Exception {
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);
}
public void testSecondaryConstructorByThisRef() throws Exception {
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);
}
public void testSecondaryConstructorBySuperRef() throws Exception {
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);
}
@@ -796,7 +830,10 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
public void testNoConflictWithReceiverName() throws Exception {
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);
}