preserve arguments list for enum constant on implement methods (IDEA-67719)

This commit is contained in:
anna
2011-04-07 18:58:51 +02:00
parent f8924b9f42
commit 82e049d035
3 changed files with 28 additions and 1 deletions

View File

@@ -164,8 +164,9 @@ public class ImplementAbstractMethodHandler {
}
public static PsiClass addClassInitializer(PsiEnumConstant enumConstant) {
final PsiExpressionList argumentList = enumConstant.getArgumentList();
final PsiEnumConstant constantFromText = JavaPsiFacade.getElementFactory(enumConstant.getProject()).createEnumConstantFromText(
enumConstant.getName() + "{}", enumConstant);
enumConstant.getName() + (argumentList != null ? argumentList.getText() : "") + "{}", enumConstant);
final PsiEnumConstant replace = (PsiEnumConstant)enumConstant.replace(constantFromText);
return replace.getInitializingClass();

View File

@@ -0,0 +1,15 @@
// "Use existing implementation of 'm'" "true"
enum I {
A("a") {
void m() {
<selection><caret>System.out.println("");</selection>
}
},
B("b") {
public void m() {
System.out.println("");
}
};
abstract void m();
I(String s){}
}

View File

@@ -0,0 +1,11 @@
// "Use existing implementation of 'm'" "true"
enum I {
A("a"),
B("b") {
public void m() {
System.out.println("");
}
};
abstract void <caret>m();
I(String s){}
}