when the file has no stub tree, stub elements in it are invalid

This commit is contained in:
peter
2012-03-21 18:48:42 +01:00
parent fd3c3c1e80
commit 9f675c8eb8
2 changed files with 7 additions and 10 deletions
@@ -35,11 +35,11 @@ class StubAstSwitchTest extends LightCodeInsightFixtureTestCase {
def oldCount = psiManager.modificationTracker.javaStructureModificationCount
ApplicationManager.application.runWriteAction { file.virtualFile.setBinaryContent(file.virtualFile.contentsToByteArray()) }
assert file.stub
assert psiManager.modificationTracker.javaStructureModificationCount != oldCount
assert !cls.valid
assert file.stub
assert cls != PsiTreeUtil.findElementOfClassAtOffset(file, 1, PsiClass, false)
assert !file.stub
}
@@ -249,15 +249,12 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF
return findTreeForStub(ast, stubs, stub);
}
public boolean isStubBasedChildValid(@NotNull StubBasedPsiElementBase psi) {
StubTree fileStub = derefStub();
if (fileStub != null) {
synchronized (myStubLock) {
fileStub = derefStub();
StubElement childStub = psi.getStub();
if (fileStub != null && childStub != null && fileStub.getRoot() != childStub.getParentStub()) {
return false;
}
public boolean isStubBasedChildValid(@NotNull StubBasedPsiElementBase child) {
synchronized (myStubLock) {
StubTree fileStub = derefStub();
StubElement childStub = child.getStub();
if (fileStub == null || childStub != null && fileStub.getRoot() != childStub.getParentStub()) {
return false;
}
}
return isValid();