fix stub-AST mismatch when typing 'enum' in a method

This commit is contained in:
peter
2017-07-21 15:57:16 +02:00
parent 909dfcbc6c
commit a2d3fb463f
2 changed files with 13 additions and 1 deletions
@@ -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);
}
@@ -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)
}
}