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;
}