Change Signature: Fix primary constructor processing

This commit is contained in:
Alexey Sedunov
2015-06-15 15:24:31 +03:00
parent 64bbbac9dc
commit e1e818858e
4 changed files with 25 additions and 1 deletions
@@ -182,7 +182,7 @@ public class JetFunctionDefinitionUsage<T extends PsiElement> extends JetUsageIn
boolean returnTypeIsNeeded = (changeInfo.isRefactoringTarget(originalFunctionDescriptor)
|| !(function instanceof JetFunctionLiteral)
|| function.getTypeReference() != null) &&
!(function instanceof JetSecondaryConstructor);
!(function instanceof JetConstructor);
if (changeInfo.isReturnTypeChanged() && returnTypeIsNeeded) {
function.setTypeReference(null);
String returnTypeText = changeInfo.renderReturnType((JetFunctionDefinitionUsage<PsiElement>) this);
@@ -0,0 +1,7 @@
class A(n: Int) {
}
fun test() {
<caret>A(1)
}
@@ -0,0 +1,7 @@
class A() {
}
fun test() {
<caret>A()
}
@@ -939,6 +939,16 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase {
doTest(changeInfo);
}
public void testPrimaryConstructorByRef() throws Exception {
JetChangeInfo changeInfo = getChangeInfo();
JetPsiFactory psiFactory = new JetPsiFactory(getProject());
JetParameterInfo newParameter = new JetParameterInfo(changeInfo.getMethodDescriptor().getBaseDescriptor(),
-1, "n", KotlinBuiltIns.getInstance().getIntType(), null,
psiFactory.createExpression("1"), JetValVar.None, null);
changeInfo.addParameter(newParameter);
doTest(changeInfo);
}
@NotNull
@Override
protected String getTestDataPath() {