findByMatcher<T extends DartElement> method

List<T> findByMatcher<T extends DartElement>({
  1. required DartElementMatcher matcher,
  2. required DartElementsParent<DartElement> source,
})

Implementation

List<T> findByMatcher<T extends DartElement>({
  required DartElementMatcher matcher,
  required DartElementsParent source,
}) {
  final elementsFound = <T>[];
  for (final el in source.children) {
    if (matcher(el)) {
      elementsFound.add(el as T);
    }
    if (el is DartElementsParent) {
      elementsFound.addAll(
        findByMatcher(matcher: matcher, source: el as DartElementsParent),
      );
    }
  }
  return elementsFound;
}