From 221203529138d8dee305b33576e2cdc5cd59fa80 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Fri, 10 Aug 2012 14:21:29 +0400 Subject: [PATCH] notnull --- .../psi/SingleRootFileViewProvider.java | 4 +-- .../intellij/psi/impl/source/PsiFileImpl.java | 27 +++++++++++-------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java b/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java index 3628cc832f60..5505d743b13c 100644 --- a/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java +++ b/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java @@ -62,7 +62,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi @NotNull private final VirtualFile myVirtualFile; private final boolean myEventSystemEnabled; private final boolean myPhysical; - @NotNull private final AtomicReference myPsiFile = new AtomicReference(); + private final AtomicReference myPsiFile = new AtomicReference(); private volatile Content myContent; private volatile SoftReference myDocument; @NotNull private final Language myBaseLanguage; @@ -178,7 +178,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi public void beforeDocumentChanged() { final PsiFileImpl psiFile = (PsiFileImpl)getCachedPsi(getBaseLanguage()); - if (psiFile != null && psiFile.isContentsLoaded() && getContent()instanceof DocumentContent) { + if (psiFile != null && psiFile.isContentsLoaded() && getContent() instanceof DocumentContent) { setContent(new PsiFileContent(psiFile, getModificationStamp())); } } diff --git a/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java b/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java index e94cab5a7aee..db7dd0077e14 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/source/PsiFileImpl.java @@ -60,6 +60,7 @@ import com.intellij.util.PatchedSoftReference; import com.intellij.util.PatchedWeakReference; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.text.CharArrayUtil; +import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -145,7 +146,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF if (pointer instanceof FileElement) { return (FileElement)pointer; } - else if (pointer instanceof Reference) { + if (pointer instanceof Reference) { FileElement treeElement = (FileElement)((Reference)pointer).get(); if (treeElement != null) return treeElement; @@ -185,9 +186,14 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF //return valid; } - protected boolean isPsiUpToDate(VirtualFile vFile) { + protected boolean isPsiUpToDate(@NotNull VirtualFile vFile) { final FileViewProvider provider = myManager.findViewProvider(vFile); - return provider.getPsi(getLanguage()) == this || provider.getPsi(provider.getBaseLanguage()) == this; + Language language = getLanguage(); + if (provider.getPsi(language) == this) { + return true; + } + Language baseLanguage = provider.getBaseLanguage(); + return baseLanguage != language && provider.getPsi(baseLanguage) == this; } @Override @@ -977,14 +983,13 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF if (tree == null) { IElementType contentElementType = getContentElementType(); if (!(contentElementType instanceof IStubFileElementType)) { - final StringBuilder builder = new StringBuilder(); - builder.append("ContentElementType: ").append(contentElementType).append("; file: ").append(this); - builder.append("\n\t").append("Boolean.TRUE.equals(getUserData(BUILDING_STUB)) = ").append(Boolean.TRUE.equals(getUserData(BUILDING_STUB))); - builder.append("\n\t").append("getTreeElementNoLock() = ").append(getTreeElementNoLock()); - final VirtualFile vFile = getVirtualFile(); - builder.append("\n\t").append("vFile instanceof VirtualFileWithId = ").append(vFile instanceof VirtualFileWithId); - builder.append("\n\t").append("StubUpdatingIndex.canHaveStub(vFile) = ").append(StubTreeLoader.getInstance().canHaveStub(vFile)); - LOG.error(builder.toString()); + VirtualFile vFile = getVirtualFile(); + @NonNls String builder = "ContentElementType: " + contentElementType + "; file: " + this + + "\n\t" + "Boolean.TRUE.equals(getUserData(BUILDING_STUB)) = " + Boolean.TRUE.equals(getUserData(BUILDING_STUB)) + + "\n\t" + "getTreeElementNoLock() = " + getTreeElementNoLock() + + "\n\t" + "vFile instanceof VirtualFileWithId = " + (vFile instanceof VirtualFileWithId) + + "\n\t" + "StubUpdatingIndex.canHaveStub(vFile) = " + StubTreeLoader.getInstance().canHaveStub(vFile); + LOG.error(builder); } final StubElement currentStubTree = ((IStubFileElementType)contentElementType).getBuilder().buildStubTree(this); tree = new StubTree((PsiFileStub)currentStubTree);