mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
invalid PSI<->stub type assertion added
This commit is contained in:
@@ -19,12 +19,17 @@
|
||||
*/
|
||||
package com.intellij.psi.stubs;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.StubBasedPsiElement;
|
||||
import com.intellij.psi.StubBuilder;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
|
||||
public class DefaultStubBuilder implements StubBuilder {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.psi.stubs.DefaultStubBuilder");
|
||||
|
||||
public StubElement buildStubTree(final PsiFile file) {
|
||||
return buildStubTreeFor(file, createStubForFile(file));
|
||||
}
|
||||
@@ -43,6 +48,13 @@ public class DefaultStubBuilder implements StubBuilder {
|
||||
stub = type.createStub(elt, parentStub);
|
||||
}
|
||||
}
|
||||
else {
|
||||
final ASTNode node = elt.getNode();
|
||||
final IElementType type = node == null? null : node.getElementType();
|
||||
if (type instanceof IStubElementType && ((IStubElementType)type).shouldCreateStub(node)) {
|
||||
LOG.error("Non-StubBasedPsiElement requests stub creation. Stub type: " + type + ", PSI: " + elt);
|
||||
}
|
||||
}
|
||||
|
||||
for (PsiElement child = elt.getFirstChild(); child != null; child = child.getNextSibling()) {
|
||||
buildStubTreeFor(child, stub);
|
||||
|
||||
Reference in New Issue
Block a user