diff --git a/platform/core-api/src/com/intellij/psi/SyntaxTraverser.java b/platform/core-api/src/com/intellij/psi/SyntaxTraverser.java index 785de7e4b5ad..cff07563ccaa 100644 --- a/platform/core-api/src/com/intellij/psi/SyntaxTraverser.java +++ b/platform/core-api/src/com/intellij/psi/SyntaxTraverser.java @@ -47,6 +47,11 @@ public class SyntaxTraverser extends FilteredTraverserBase(psiApi(), null); } + @NotNull + public static SyntaxTraverser psiTraverser(@Nullable PsiElement root) { + return psiTraverser().withRoot(root); + } + @NotNull public static SyntaxTraverser revPsiTraverser() { return new SyntaxTraverser(psiApiReversed(), null); @@ -57,6 +62,11 @@ public class SyntaxTraverser extends FilteredTraverserBase(astApi(), null); } + @NotNull + public static SyntaxTraverser astTraverser(@Nullable ASTNode root) { + return astTraverser().withRoot(root); + } + @NotNull public static SyntaxTraverser lightTraverser(@NotNull PsiBuilder builder) { LighterASTApi api = new LighterASTApi(builder); diff --git a/platform/util/src/com/intellij/util/containers/FilteredTraverserBase.java b/platform/util/src/com/intellij/util/containers/FilteredTraverserBase.java index 86c31037247c..6b721e211ecb 100644 --- a/platform/util/src/com/intellij/util/containers/FilteredTraverserBase.java +++ b/platform/util/src/com/intellij/util/containers/FilteredTraverserBase.java @@ -22,7 +22,6 @@ import com.intellij.util.Function; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -108,8 +107,8 @@ public abstract class FilteredTraverserBase