diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaLightStubBuilder.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaLightStubBuilder.java index 3470ad3a1ca8..508216f8f56c 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaLightStubBuilder.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/JavaLightStubBuilder.java @@ -142,7 +142,7 @@ public class JavaLightStubBuilder extends LightStubBuilder { return (result = false); } // local classes - else if (type == JavaTokenType.CLASS_KEYWORD && last != JavaTokenType.DOT) { + else if (type == JavaTokenType.CLASS_KEYWORD ? last != JavaTokenType.DOT : ElementType.CLASS_KEYWORD_BIT_SET.contains(type)) { return (result = false); } diff --git a/java/java-tests/testSrc/com/intellij/java/psi/JavaStubsTest.groovy b/java/java-tests/testSrc/com/intellij/java/psi/JavaStubsTest.groovy index 604ba9ef1394..9517c772e0c3 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/JavaStubsTest.groovy +++ b/java/java-tests/testSrc/com/intellij/java/psi/JavaStubsTest.groovy @@ -221,4 +221,16 @@ class Foo { PsiTestUtil.checkStubsMatchText(psiFile) } + void "test inserting enum keyword"() { + String text = "class Foo { void foo() { return; } }" + PsiFile psiFile = myFixture.addFileToProject("a.java", text) + Document document = psiFile.getViewProvider().getDocument() + + WriteCommandAction.runWriteCommandAction(project) { + document.insertString(text.indexOf("return"), "enum Foo") + } + PsiDocumentManager.getInstance(getProject()).commitAllDocuments() + PsiTestUtil.checkStubsMatchText(psiFile) + } + } \ No newline at end of file