diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionParametersFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionParametersFix.java index 6d6505b1a05..c10b1cff474 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionParametersFix.java +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/AddFunctionParametersFix.java @@ -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); diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralSignatureFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralSignatureFix.java index 532246f83c1..b086b416159 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralSignatureFix.java +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionLiteralSignatureFix.java @@ -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; } diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionSignatureFix.java b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionSignatureFix.java index 3487aae391b..d0e8855cbbb 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionSignatureFix.java +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeFunctionSignatureFix.java @@ -120,7 +120,7 @@ public abstract class ChangeFunctionSignatureFix extends JetIntentionAction 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(parameterInfo, paramTypeCodeFragment, defaultValueCodeFragment) { @Override public boolean isEllipsisType() { diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeInfo.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeInfo.kt index bb371b3e609..1d03c5a79c9 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeInfo.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeInfo.kt @@ -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 } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureDialog.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureDialog.java index 7b0653b327e..06d5630855e 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureDialog.java +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureDialog.java @@ -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() : ""; diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetParameterInfo.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetParameterInfo.kt index aabe55c88cb..77cf7ed58ad 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetParameterInfo.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetParameterInfo.kt @@ -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 { diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetFunctionCallUsage.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetFunctionCallUsage.java index 15b3a3fb242..ddcb49a80fa 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetFunctionCallUsage.java +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetFunctionCallUsage.java @@ -100,7 +100,8 @@ public class JetFunctionCallUsage extends JetUsageInfo { 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 { : 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 { 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 = "_"; } diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt index b858591552d..8a5d2ee4969 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceParameter/KotlinIntroduceParameterHandler.kt @@ -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 diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt index 00c9cd76c10..3ad427cf5ad 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/jetRefactoringUtil.kt @@ -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 PsiElement.getAndRemoveCopyableUserData(key: Key): 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) +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java index 7b98160650f..33884cfeb90 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java @@ -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); }