preserve generics signature on inner class make static fix (IDEA-135223)

This commit is contained in:
Anna Kozlova
2015-01-15 10:25:49 +01:00
parent f241b699b8
commit a9725caf48
4 changed files with 38 additions and 6 deletions
@@ -111,8 +111,10 @@ public class InnerClassMayBeStaticInspection extends BaseInspection {
if (argumentList == null) {
continue;
}
final PsiExpression expression =
factory.createExpressionFromText("new " + classReference.getQualifiedName() + argumentList.getText(), innerClass);
final PsiReferenceParameterList parameterList = classReference.getParameterList();
final String genericParameters = parameterList != null ? parameterList.getText() : "";
final PsiExpression expression = factory
.createExpressionFromText("new " + classReference.getQualifiedName() + genericParameters + argumentList.getText(), innerClass);
codeStyleManager.shortenClassReferences(newExpression.replace(expression));
}
final PsiModifierList modifiers = innerClass.getModifierList();
@@ -0,0 +1,16 @@
class IdeaTest {
public void test(){
print(new InnerClass<Integer>().foo(Integer.valueOf(1)));
}
public void print(Integer foo){
System.out.println(foo);
}
static class InnerClass<T>{
public T foo(T bar){
return bar;
}
}
}
@@ -0,0 +1,16 @@
class IdeaTest {
public void test(){
print(new InnerClass<Integer>().foo(Integer.valueOf(1)));
}
public void print(Integer foo){
System.out.println(foo);
}
class Inn<caret>erClass<T>{
public T foo(T bar){
return bar;
}
}
}
@@ -33,8 +33,6 @@ public class InnerClassMayBeStaticFixTest extends IGQuickFixesTestCase {
}
public void testSimple() { doTest(); }
public void testAnonymousInside() {
doTest();
}
public void testAnonymousInside() { doTest(); }
public void testPreserveGenericSignature() { doTest(); }
}