visit<T> method

T visit<T>(
  1. dynamic k,
  2. T map(
    1. dynamic
    ),
  3. T reduce(
    1. T,
    2. List<T>
    )
)

Implementation

T visit<T>(
    DartType k, T Function(DartType) map, T Function(T, List<T>) reduce) {
  if (k is TypeParameterType) {
    return map(k);
  }
  if (k is! ParameterizedType || k.typeArguments.isEmpty) {
    return map(k);
  }
  final ks = k.typeArguments.map((v) => visit<T>(v, map, reduce));
  if (ks.isEmpty) {
    return map(k);
  }
  return reduce(map(k), ks.toList());
}