buildErrors method

List<String> buildErrors()

Implementation

List<String> buildErrors() {
  final result = <String>[];
  final sink = StringBuffer();
  final parseErrors = failures.whereType<ParseError>();
  if (parseErrors.isNotEmpty) {
    final keys = parseErrors.map((e) => e.key).toSet();
    for (final key in keys) {
      final elements = parseErrors.where((e) => e.key == key);
      final quoted = elements.map((e) => '\'${e.element}\'').toList();
      quoted.sort();
      sink.write(key);
      sink.write(': ');
      sink.write(quoted.join(', '));
      result.add(sink.toString());
    }
  }

  final set = failures.toSet();
  set.removeAll(parseErrors);
  for (final error in set) {
    result.add(error.toString());
  }

  return result;
}