invalid PSI<->stub type assertion added

This commit is contained in:
Gregory Shrago
2009-11-18 16:24:01 +03:00
parent cb6f47c3ad
commit dd10bbf66d
@@ -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);