diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateTypeParameterFromUsageFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateTypeParameterFromUsageFix.java index 9f860e1a2640..6fadbd68a16f 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateTypeParameterFromUsageFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateTypeParameterFromUsageFix.java @@ -185,7 +185,8 @@ public class CreateTypeParameterFromUsageFix extends BaseIntentionAction { if (element instanceof PsiField && ((PsiField)element).hasModifierProperty(PsiModifier.STATIC)) { break; } - if (element instanceof PsiMethod || (element instanceof PsiClass && !(element instanceof PsiTypeParameter))) { + if (element instanceof PsiClass && ((PsiClass)element).isEnum()) break; + if (element instanceof PsiMethod || isValidClass(element)) { if (((PsiMember)element).getName() != null) { parents.add((PsiNameIdentifierOwner)element); if (findFirstOnly) { @@ -198,4 +199,8 @@ public class CreateTypeParameterFromUsageFix extends BaseIntentionAction { } return parents; } + + private static boolean isValidClass(PsiElement element) { + return element instanceof PsiClass && !(element instanceof PsiTypeParameter); + } } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createTypeParameterFromUsage/beforeEnum.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createTypeParameterFromUsage/beforeEnum.java new file mode 100644 index 000000000000..cb3272619627 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createTypeParameterFromUsage/beforeEnum.java @@ -0,0 +1,8 @@ +// "Create type parameter 'T'" "false" + +public class Test { + private enum State { + VALID, INVALID; + private T info; + } +} \ No newline at end of file