From e98ce78e91506b0056bcd1528b97070dc2f75ced Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 30 May 2016 19:24:51 +0200 Subject: [PATCH] deduplicate DefaultStubBuilder (IDEA-CR-11109) --- .../psi/stubs/DefaultStubBuilder.java | 35 +------------------ 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/platform/core-impl/src/com/intellij/psi/stubs/DefaultStubBuilder.java b/platform/core-impl/src/com/intellij/psi/stubs/DefaultStubBuilder.java index 9da64fce6720..662fd64912e8 100644 --- a/platform/core-impl/src/com/intellij/psi/stubs/DefaultStubBuilder.java +++ b/platform/core-impl/src/com/intellij/psi/stubs/DefaultStubBuilder.java @@ -33,7 +33,7 @@ public class DefaultStubBuilder implements StubBuilder { @Override public StubElement buildStubTree(@NotNull PsiFile file) { - return buildStubTreeFor(file, createStubForFile(file)); + return buildStubTreeFor(file.getNode(), createStubForFile(file)); } @NotNull @@ -42,39 +42,6 @@ public class DefaultStubBuilder implements StubBuilder { return stub; } - @NotNull - private StubElement buildStubTreeFor(@NotNull PsiElement root, @NotNull StubElement parentStub) { - Stack parentStubs = new Stack(); - Stack parentElements = new Stack(); - parentElements.push(root.getNode()); - parentStubs.push(parentStub); - - while (!parentElements.isEmpty()) { - StubElement stub = parentStubs.pop(); - ASTNode node = parentElements.pop(); - - IElementType type = node.getElementType(); - if (type instanceof IStubElementType && ((IStubElementType)type).shouldCreateStub(node)) { - PsiElement elt = node.getPsi(); - if (elt instanceof StubBasedPsiElement) { - //noinspection unchecked - stub = ((IStubElementType)type).createStub(elt, stub); - } - else { - LOG.error("Non-StubBasedPsiElement requests stub creation. Stub type: " + type + ", PSI: " + elt); - } - } - - for (ASTNode child = node.getLastChildNode(); child != null; child = child.getTreePrev()) { - if (!skipChildProcessingWhenBuildingStubs(node, child)) { - parentStubs.push(stub); - parentElements.push(child); - } - } - } - return parentStub; - } - /** * @deprecated override and invoke {@link #skipChildProcessingWhenBuildingStubs(ASTNode, ASTNode)} * Note to implementers: always keep in sync with {@linkplain #skipChildProcessingWhenBuildingStubs(ASTNode, ASTNode)}.