diff --git a/java/java-impl/src/com/intellij/lang/java/actions/CreateEnumConstantAction.kt b/java/java-impl/src/com/intellij/lang/java/actions/CreateEnumConstantAction.kt index 84bc94046361..a800034e0dd6 100644 --- a/java/java-impl/src/com/intellij/lang/java/actions/CreateEnumConstantAction.kt +++ b/java/java-impl/src/com/intellij/lang/java/actions/CreateEnumConstantAction.kt @@ -30,6 +30,7 @@ import com.intellij.psi.JavaPsiFacade import com.intellij.psi.PsiClass import com.intellij.psi.PsiEnumConstant import com.intellij.psi.PsiFile +import com.intellij.psi.util.PsiTreeUtil class CreateEnumConstantAction(targetClass: PsiClass, request: CreateFieldRequest) : CreateFieldActionBase(targetClass, request) { @@ -87,6 +88,10 @@ private class EnumConstantData( private fun extractRenderData(targetClass: PsiClass, request: CreateFieldRequest): EnumConstantData? { if (!targetClass.isEnum) return null + + val lastConstant = targetClass.fields.filterIsInstance().lastOrNull() + if (lastConstant != null && PsiTreeUtil.hasErrorElements(lastConstant)) return null + if (!checkExpectedTypes(request.fieldType, targetClass, targetClass.project)) return null return EnumConstantData(targetClass, request.fieldName) } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createEnumConstantFromUsage/beforeNoSuggestionWhenEnumIsBroken.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createEnumConstantFromUsage/beforeNoSuggestionWhenEnumIsBroken.java new file mode 100644 index 000000000000..900ae3103d14 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/createEnumConstantFromUsage/beforeNoSuggestionWhenEnumIsBroken.java @@ -0,0 +1,9 @@ +// "Create enum constant 'Natural'" "false" +class ParagraphStyle { + TextDirection textDirection = TextDirection.Natural; + + public enum TextDirection { + a(b; + int x; + } +} \ No newline at end of file