mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-13 09:19:13 +07:00
generate constructor: place varargs from base constructor as last parameter (IDEA-142811)
This commit is contained in:
+9
-2
@@ -270,8 +270,15 @@ public class GenerateConstructorHandler extends GenerateMembersHandlerBase {
|
||||
parm.getModifierList().addAfter(notNull, null);
|
||||
}
|
||||
|
||||
constructor.getParameterList().add(parm);
|
||||
dummyConstructor.getParameterList().add(parm.copy());
|
||||
if (constructor.isVarArgs()) {
|
||||
final PsiParameterList parameterList = constructor.getParameterList();
|
||||
parameterList.addBefore(parm, parameterList.getParameters()[parameterList.getParametersCount() - 1]);
|
||||
final PsiParameterList dummyParameterlist = dummyConstructor.getParameterList();
|
||||
dummyParameterlist.addBefore(parm.copy(), dummyParameterlist.getParameters()[dummyParameterlist.getParametersCount() - 1]);
|
||||
} else {
|
||||
constructor.getParameterList().add(parm);
|
||||
dummyConstructor.getParameterList().add(parm.copy());
|
||||
}
|
||||
fieldParams.add(parm);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
class Base {
|
||||
public Base(String... ignored) { }
|
||||
}
|
||||
class Derived extends Base {
|
||||
int i;
|
||||
|
||||
public Derived(int i, String... ignored) {
|
||||
super(ignored);
|
||||
this.i = i;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
class Base {
|
||||
public Base(String... ignored) { }
|
||||
}
|
||||
class Derived extends Base {
|
||||
int i;
|
||||
|
||||
<caret>
|
||||
}
|
||||
@@ -37,6 +37,7 @@ public class GenerateConstructorTest extends LightCodeInsightTestCase {
|
||||
public void testSameNamedFields() throws Exception { doTest(); }
|
||||
public void testEnumWithAbstractMethod() throws Exception { doTest(); }
|
||||
public void testNoMoreConstructorsCanBeGenerated() throws Exception { doTest(); }
|
||||
public void testBaseVarargs() throws Exception { doTest(); }
|
||||
|
||||
public void testImmediatelyAfterRBrace() throws Exception { // IDEADEV-28811
|
||||
CodeStyleSettingsManager.getInstance(getProject()).getCurrentSettings().CLASS_BRACE_STYLE = CommonCodeStyleSettings.NEXT_LINE;
|
||||
|
||||
Reference in New Issue
Block a user