transformChildren<T extends AstNode> method

List<T> transformChildren<T extends AstNode>(
  1. List<T> children,
  2. AstNode parent,
  3. A arg
)

Implementation

List<T> transformChildren<T extends AstNode>(
    List<T> children, AstNode parent, A arg) {
  final newChildren = <T>[];

  for (final child in children) {
    // ignore: unnecessary_cast, it's a frontend bug in Dart 2.12
    final transformed = transform(child as AstNode, arg) as T?;
    if (transformed != null) {
      newChildren.add(transformed..parent = parent);
    }
  }

  return newChildren;
}