diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiResourceListImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiResourceListImpl.java index 9b66c2c11c84..16870e92782f 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiResourceListImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiResourceListImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,6 +27,8 @@ import org.jetbrains.annotations.NotNull; import java.util.Iterator; import java.util.List; +import static com.intellij.psi.SyntaxTraverser.psiTraverser; + public class PsiResourceListImpl extends CompositePsiElement implements PsiResourceList { public PsiResourceListImpl() { super(JavaElementType.RESOURCE_LIST); @@ -50,7 +52,7 @@ public class PsiResourceListImpl extends CompositePsiElement implements PsiResou @NotNull @Override public Iterator iterator() { - return PsiTreeUtil.childIterator(this, PsiResourceListElement.class); + return psiTraverser().children(this).filter(PsiResourceListElement.class).iterator(); } @Override @@ -85,4 +87,4 @@ public class PsiResourceListImpl extends CompositePsiElement implements PsiResou public String toString() { return "PsiResourceList:" + getText(); } -} +} \ No newline at end of file diff --git a/platform/core-api/src/com/intellij/psi/util/PsiTreeUtil.java b/platform/core-api/src/com/intellij/psi/util/PsiTreeUtil.java index bffa1064132b..40390e7aeb8e 100644 --- a/platform/core-api/src/com/intellij/psi/util/PsiTreeUtil.java +++ b/platform/core-api/src/com/intellij/psi/util/PsiTreeUtil.java @@ -42,6 +42,8 @@ import org.jetbrains.annotations.Nullable; import java.util.*; +import static com.intellij.psi.SyntaxTraverser.psiTraverser; + public class PsiTreeUtil { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.util.PsiTreeUtil"); @@ -1026,7 +1028,7 @@ public class PsiTreeUtil { } public static boolean hasErrorElements(@NotNull PsiElement element) { - return !SyntaxTraverser.psiTraverser(element).traverse().filter(PsiErrorElement.class).isEmpty(); + return !psiTraverser(element).traverse().filter(PsiErrorElement.class).isEmpty(); } @NotNull @@ -1132,31 +1134,6 @@ public class PsiTreeUtil { return res; } - @NotNull - public static Iterator childIterator(@NotNull final PsiElement element, @NotNull final Class aClass) { - return new Iterator() { - private T next = getChildOfType(element, aClass); - - @Override - public boolean hasNext() { - return next != null; - } - - @Override - public T next() { - if (next == null) throw new NoSuchElementException(); - T current = next; - next = getNextSiblingOfType(current, aClass); - return current; - } - - @Override - public void remove() { - throw new UnsupportedOperationException(); - } - }; - } - @Nullable public static PsiElement getDeepestVisibleFirst(@NotNull PsiElement psiElement) { PsiElement first = getDeepestFirst(psiElement); @@ -1174,4 +1151,12 @@ public class PsiTreeUtil { } return last; } + + // + /** use {@link SyntaxTraverser#psiTraverser()} (to be removed in IDEA 2019) */ + @Deprecated + public static Iterator childIterator(@NotNull PsiElement element, @NotNull Class aClass) { + return psiTraverser().children(element).filter(aClass).iterator(); + } + // } \ No newline at end of file