mergeIterables function

Iterable mergeIterables(
  1. dynamic a,
  2. dynamic b
)

Concatenates two iterables (or wraps scalars as single-element iterables). Items that are themselves Maps, Lists, Sets or Queues are deep-copied so the result does not alias the inputs.

Implementation

Iterable<dynamic> mergeIterables(dynamic a, dynamic b) {
  final aa = a is Iterable
      ? a.nonNulls.cast<dynamic>().map<dynamic>(_deepCopy)
      : Iterable<dynamic>.generate(1, (_) => _deepCopy(a));
  final bb = b is Iterable
      ? b.nonNulls.cast<dynamic>().map<dynamic>(_deepCopy)
      : Iterable<dynamic>.generate(1, (_) => _deepCopy(b));
  return aa.followedBy(bb).toList();
}