diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java index abe9368374e8..9e8684899939 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageBaseFix.java @@ -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; } diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java index 55fe7664d0b0..333ca47b014c 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateInnerClassFromNewFix.java @@ -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) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/afterTypeParamSetup.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/afterTypeParamSetup.java new file mode 100644 index 000000000000..9d516996894c --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/afterTypeParamSetup.java @@ -0,0 +1,11 @@ +// "Create Inner Class 'AInner'" "true" +class Test { + { + AInner aInner = new AInner(42); + } + + private class AInner { + public AInner(int i) { + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/afterTypeParamSetup1.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/afterTypeParamSetup1.java new file mode 100644 index 000000000000..aac015e28360 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/afterTypeParamSetup1.java @@ -0,0 +1,11 @@ +// "Create Inner Class 'AInner'" "true" +class Test { + { + AInner aInner = new AInner(42); + } + + private class AInner { + public AInner(int i) { + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/beforeTypeParamSetup.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/beforeTypeParamSetup.java new file mode 100644 index 000000000000..1d26d9d55357 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/beforeTypeParamSetup.java @@ -0,0 +1,6 @@ +// "Create Inner Class 'AInner'" "true" +class Test { + { + AInner aInner = new AInner(42); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/beforeTypeParamSetup1.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/beforeTypeParamSetup1.java new file mode 100644 index 000000000000..bf0997aed99e --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createInnerClassFromNew/beforeTypeParamSetup1.java @@ -0,0 +1,6 @@ +// "Create Inner Class 'AInner'" "true" +class Test { + { + AInner aInner = new AInner(42); + } +} \ No newline at end of file