diff --git a/platform/core-impl/src/com/intellij/pom/core/impl/PomModelImpl.java b/platform/core-impl/src/com/intellij/pom/core/impl/PomModelImpl.java index 7a9773c8f5ff..293e2815ced3 100644 --- a/platform/core-impl/src/com/intellij/pom/core/impl/PomModelImpl.java +++ b/platform/core-impl/src/com/intellij/pom/core/impl/PomModelImpl.java @@ -347,7 +347,10 @@ public class PomModelImpl extends UserDataHolderBase implements PomModel { } PsiTreeChangeEventImpl event = new PsiTreeChangeEventImpl(getPsiManager()); event.setParent(scope); - event.setFile(scope.getContainingFile()); + PsiFile containingFile = scope.getContainingFile(); + if (containingFile != null) { + event.setFile(containingFile); + } TextRange range = scope.getTextRange(); event.setOffset(range == null ? 0 : range.getStartOffset()); event.setOldLength(scope.getTextLength()); diff --git a/platform/core-impl/src/com/intellij/pom/tree/events/impl/ChangeInfoImpl.java b/platform/core-impl/src/com/intellij/pom/tree/events/impl/ChangeInfoImpl.java index b9ddd1a48379..6b94cbd1e755 100644 --- a/platform/core-impl/src/com/intellij/pom/tree/events/impl/ChangeInfoImpl.java +++ b/platform/core-impl/src/com/intellij/pom/tree/events/impl/ChangeInfoImpl.java @@ -82,9 +82,9 @@ public class ChangeInfoImpl implements ChangeInfo { } } - static @NotNull PsiTreeChangeEventImpl createEvent(PsiFile file, int offset) { - PsiTreeChangeEventImpl e = new PsiTreeChangeEventImpl(file.getManager()); - e.setFile(file); + static @NotNull PsiTreeChangeEventImpl createEvent(@NotNull PsiFile psiFile, int offset) { + PsiTreeChangeEventImpl e = new PsiTreeChangeEventImpl(psiFile.getManager()); + e.setFile(psiFile); e.setOffset(offset); return e; } diff --git a/platform/core-impl/src/com/intellij/psi/AbstractFileViewProvider.java b/platform/core-impl/src/com/intellij/psi/AbstractFileViewProvider.java index 1db94bb782c9..daecef498aa3 100644 --- a/platform/core-impl/src/com/intellij/psi/AbstractFileViewProvider.java +++ b/platform/core-impl/src/com/intellij/psi/AbstractFileViewProvider.java @@ -37,7 +37,7 @@ import com.intellij.testFramework.LightVirtualFile; import com.intellij.util.ConcurrencyUtil; import com.intellij.util.LocalTimeCounter; import com.intellij.util.containers.CollectionFactory; -import com.intellij.util.containers.JBIterable; +import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.JBTreeTraverser; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -188,7 +188,7 @@ public abstract class AbstractFileViewProvider extends UserDataHolderBase implem return getPsiInner(target); } - protected abstract @Nullable PsiFile getPsiInner(Language target); + protected abstract @Nullable PsiFile getPsiInner(@NotNull Language target); @SuppressWarnings("MethodDoesntCallSuperMethod") @Override @@ -249,12 +249,12 @@ public abstract class AbstractFileViewProvider extends UserDataHolderBase implem } public final void onContentReload() { - List files = getCachedPsiFiles(); - List events = new ArrayList<>(files.size()); - List genericEvents = new ArrayList<>(files.size()); - for (PsiFile file : files) { - genericEvents.add(createChildrenChangeEvent(file, true)); - events.add(createChildrenChangeEvent(file, false)); + List psiFiles = getCachedPsiFiles(); + List events = new ArrayList<>(psiFiles.size()); + List genericEvents = new ArrayList<>(psiFiles.size()); + for (PsiFile psiFile : psiFiles) { + genericEvents.add(createChildrenChangeEvent(psiFile, true)); + events.add(createChildrenChangeEvent(psiFile, false)); } beforeContentsSynchronized(); @@ -266,7 +266,7 @@ public abstract class AbstractFileViewProvider extends UserDataHolderBase implem ((PsiManagerImpl)getManager()).beforeChildrenChange(event); } - for (PsiFile psiFile : files) { + for (PsiFile psiFile : psiFiles) { if (psiFile instanceof PsiFileEx) { ((PsiFileEx)psiFile).onContentReload(); } @@ -282,14 +282,14 @@ public abstract class AbstractFileViewProvider extends UserDataHolderBase implem } } - private PsiTreeChangeEventImpl createChildrenChangeEvent(PsiFile file, boolean generic) { + private @NotNull PsiTreeChangeEventImpl createChildrenChangeEvent(@NotNull PsiFile psiFile, boolean generic) { PsiTreeChangeEventImpl event = new PsiTreeChangeEventImpl(myManager); - event.setParent(file); - event.setFile(file); + event.setParent(psiFile); + event.setFile(psiFile); event.setGenericChange(generic); - if (file instanceof PsiFileImpl && ((PsiFileImpl)file).isContentsLoaded()) { + if (psiFile instanceof PsiFileImpl && ((PsiFileImpl)psiFile).isContentsLoaded()) { event.setOffset(0); - event.setOldLength(file.getTextLength()); + event.setOldLength(psiFile.getTextLength()); } return event; } @@ -357,7 +357,7 @@ public abstract class AbstractFileViewProvider extends UserDataHolderBase implem } } - private boolean isDocumentConsistentWithPsi(int fileLength, FileASTNode fileElement, int nodeLength) { + private boolean isDocumentConsistentWithPsi(int fileLength, @NotNull FileASTNode fileElement, int nodeLength) { if (nodeLength != fileLength) return false; if (ApplicationManager.getApplication().isUnitTestMode() && !ApplicationManagerEx.isInStressTest()) { @@ -403,10 +403,10 @@ public abstract class AbstractFileViewProvider extends UserDataHolderBase implem } } - private Iterable getKnownCopies() { + private @NotNull Iterable getKnownCopies() { Set copies = getUserData(KNOWN_COPIES); if (copies != null) { - return JBIterable.from(copies).filter(copy -> copy.getCachedPsiFiles().stream().anyMatch(f -> f.getOriginalFile().getViewProvider() == this)); + return ContainerUtil.filter(copies, copy -> ContainerUtil.exists(copy.getCachedPsiFiles(), f -> f.getOriginalFile().getViewProvider() == this)); } return Collections.emptySet(); } diff --git a/platform/core-impl/src/com/intellij/psi/DummyHolderViewProvider.java b/platform/core-impl/src/com/intellij/psi/DummyHolderViewProvider.java index e70c930f5758..f6d2dad41aeb 100644 --- a/platform/core-impl/src/com/intellij/psi/DummyHolderViewProvider.java +++ b/platform/core-impl/src/com/intellij/psi/DummyHolderViewProvider.java @@ -42,7 +42,7 @@ public class DummyHolderViewProvider extends AbstractFileViewProvider { } @Override - protected @Nullable PsiFile getPsiInner(Language target) { + protected @Nullable PsiFile getPsiInner(@NotNull Language target) { return getCachedPsi(target); } diff --git a/platform/core-impl/src/com/intellij/psi/impl/DiffLog.java b/platform/core-impl/src/com/intellij/psi/impl/DiffLog.java index 7ef5caeb1578..797138b6014f 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/DiffLog.java +++ b/platform/core-impl/src/com/intellij/psi/impl/DiffLog.java @@ -105,19 +105,19 @@ public class DiffLog implements DiffTreeChangeBuilder { } @Override - void doActualPsiChange(@NotNull PsiFile file, @NotNull TreeChangeEventImpl changeEvent) { + void doActualPsiChange(@NotNull PsiFile psiFile, @NotNull TreeChangeEventImpl changeEvent) { ASTNode parent = ensureOldParent(); PsiElement psiParent = parent.getPsi(); - PsiElement psiOldChild = file.isPhysical() ? myOldChild.getPsi() : null; + PsiElement psiOldChild = psiFile.isPhysical() ? myOldChild.getPsi() : null; if (psiParent != null && psiOldChild != null) { - PsiTreeChangeEventImpl event = new PsiTreeChangeEventImpl(file.getManager()); + PsiTreeChangeEventImpl event = new PsiTreeChangeEventImpl(psiFile.getManager()); event.setParent(psiParent); - event.setFile(file); + event.setFile(psiFile); event.setOldChild(psiOldChild); - PsiElement psiNewChild = getPsi(myNewChild, file); + PsiElement psiNewChild = getPsi(myNewChild, psiFile); event.setNewChild(psiNewChild); - ((PsiManagerEx)file.getManager()).beforeChildReplacement(event); + ((PsiManagerEx)psiFile.getManager()).beforeChildReplacement(event); } if (!(myOldChild instanceof FileElement) || !(myNewChild instanceof FileElement)) { @@ -147,16 +147,16 @@ public class DiffLog implements DiffTreeChangeBuilder { } @Override - void doActualPsiChange(@NotNull PsiFile file, @NotNull TreeChangeEventImpl changeEvent) { + void doActualPsiChange(@NotNull PsiFile psiFile, @NotNull TreeChangeEventImpl changeEvent) { PsiElement psiParent = myOldParent.getPsi(); - PsiElement psiChild = file.isPhysical() ? myOldNode.getPsi() : null; + PsiElement psiChild = psiFile.isPhysical() ? myOldNode.getPsi() : null; if (psiParent != null && psiChild != null) { - PsiTreeChangeEventImpl event = new PsiTreeChangeEventImpl(file.getManager()); + PsiTreeChangeEventImpl event = new PsiTreeChangeEventImpl(psiFile.getManager()); event.setParent(psiParent); event.setChild(psiChild); - event.setFile(file); - ((PsiManagerEx)file.getManager()).beforeChildRemoval(event); + event.setFile(psiFile); + ((PsiManagerEx)psiFile.getManager()).beforeChildRemoval(event); } changeEvent.addElementaryChange(myOldParent); @@ -179,7 +179,7 @@ public class DiffLog implements DiffTreeChangeBuilder { } @Override - void doActualPsiChange(@NotNull PsiFile file, @NotNull TreeChangeEventImpl changeEvent) { + void doActualPsiChange(@NotNull PsiFile psiFile, @NotNull TreeChangeEventImpl changeEvent) { ASTNode anchor = null; ASTNode firstChildNode = myOldParent.getFirstChildNode(); for (int i = 0; i < myPos; i++) { @@ -187,13 +187,13 @@ public class DiffLog implements DiffTreeChangeBuilder { } PsiElement psiParent = myOldParent.getPsi(); - PsiElement psiChild = getPsi(myNewNode, file); + PsiElement psiChild = getPsi(myNewNode, psiFile); if (psiParent != null && psiChild != null) { - PsiTreeChangeEventImpl event = new PsiTreeChangeEventImpl(file.getManager()); + PsiTreeChangeEventImpl event = new PsiTreeChangeEventImpl(psiFile.getManager()); event.setParent(psiParent); event.setChild(psiChild); - event.setFile(file); - ((PsiManagerEx)file.getManager()).beforeChildAddition(event); + event.setFile(psiFile); + ((PsiManagerEx)psiFile.getManager()).beforeChildAddition(event); } changeEvent.addElementaryChange(myOldParent); diff --git a/platform/core-impl/src/com/intellij/psi/impl/PsiToDocumentSynchronizer.java b/platform/core-impl/src/com/intellij/psi/impl/PsiToDocumentSynchronizer.java index 5539a0069701..35f56499bdb1 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/PsiToDocumentSynchronizer.java +++ b/platform/core-impl/src/com/intellij/psi/impl/PsiToDocumentSynchronizer.java @@ -256,8 +256,8 @@ public class PsiToDocumentSynchronizer { public static class DocumentChangeTransaction{ private final TreeMap myAffectedFragments = new TreeMap<>(Comparator.comparingInt(TextRange::getStartOffset)); - private final PsiFile myChangeScope; - private ImmutableCharSequence myPsiText; + private final @NotNull PsiFile myChangeScope; + private @NotNull ImmutableCharSequence myPsiText; DocumentChangeTransaction(@NotNull Document doc, @NotNull PsiFile scope) { myChangeScope = scope; diff --git a/platform/core-impl/src/com/intellij/psi/impl/PsiTreeChangeEventImpl.java b/platform/core-impl/src/com/intellij/psi/impl/PsiTreeChangeEventImpl.java index 2fa2579ee5ab..b286155b4bc6 100644 --- a/platform/core-impl/src/com/intellij/psi/impl/PsiTreeChangeEventImpl.java +++ b/platform/core-impl/src/com/intellij/psi/impl/PsiTreeChangeEventImpl.java @@ -79,8 +79,8 @@ public final class PsiTreeChangeEventImpl extends PsiTreeChangeEvent{ myNewValue = newValue; } - public void setFile(PsiFile file) { - myFile = file; + public void setFile(@NotNull PsiFile psiFile) { + myFile = psiFile; } public void setOffset(int offset) {