create from new: fix type parameters setup (IDEA-128679; IDEA-128682)

This commit is contained in:
Anna Kozlova
2014-08-18 15:21:11 +04:00
parent 469ee0e4d5
commit 8369db7878
6 changed files with 36 additions and 3 deletions
@@ -475,7 +475,7 @@ public abstract class CreateFromUsageBaseFix extends BaseIntentionAction {
} else {
while (true) {
final String paramName = idx > 0 ? "T" + idx : "T";
if (!typeParamNames.contains(paramName)) {
if (typeParamNames.add(paramName)) {
targetClass.getTypeParameterList().add(factory.createTypeParameterFromText(paramName, null));
break;
}
@@ -67,9 +67,8 @@ public class CreateInnerClassFromNewFix extends CreateClassFromNewFix {
}
created = (PsiClass)targetClass.add(created);
setupClassFromNewExpression(created, newExpression);
setupGenericParameters(created, ref);
setupClassFromNewExpression(created, newExpression);
}
private static boolean isInThisOrSuperCall(PsiNewExpression newExpression) {
@@ -0,0 +1,11 @@
// "Create Inner Class 'AInner'" "true"
class Test {
{
AInner aInner = new AInner<String>(42);
}
private class AInner<T> {
public AInner(int i) {
}
}
}
@@ -0,0 +1,11 @@
// "Create Inner Class 'AInner'" "true"
class Test {
{
AInner aInner = new AInner<String, String>(42);
}
private class AInner<T, T1> {
public AInner(int i) {
}
}
}
@@ -0,0 +1,6 @@
// "Create Inner Class 'AInner'" "true"
class Test {
{
AInner aInner = new AIn<caret>ner<String>(42);
}
}
@@ -0,0 +1,6 @@
// "Create Inner Class 'AInner'" "true"
class Test {
{
AInner aInner = new AIn<caret>ner<String, String>(42);
}
}