diff --git a/platform/lang-api/src/com/intellij/psi/util/PsiTreeUtil.java b/platform/lang-api/src/com/intellij/psi/util/PsiTreeUtil.java index f5c174dea4b5..4199ce90d337 100644 --- a/platform/lang-api/src/com/intellij/psi/util/PsiTreeUtil.java +++ b/platform/lang-api/src/com/intellij/psi/util/PsiTreeUtil.java @@ -229,6 +229,16 @@ public class PsiTreeUtil { return result == null ? null : ArrayUtil.toObjectArray(result, aClass); } + @NotNull public static List getChildrenOfTypeAsList(@NotNull PsiElement element, @NotNull Class aClass) { + List result = new SmartList(); + for(PsiElement child = element.getFirstChild(); child != null; child = child.getNextSibling()){ + if (instanceOf(aClass, child)) { + result.add((T)child); + } + } + return result; + } + private static boolean instanceOf(final Class aClass, final PsiElement child) { /*