visitLiteralRecordExpression method

  1. @override
StringSink visitLiteralRecordExpression(
  1. LiteralRecordExpression expression, [
  2. StringSink? output
])
override

Implementation

@override
StringSink visitLiteralRecordExpression(
  LiteralRecordExpression expression, [
  StringSink? output,
]) {
  final out = output ??= StringBuffer();
  return _writeConstExpression(out, expression.isConst, () {
    out.write('(');
    visitAll<Object?>(expression.positionalFieldValues, out, (value) {
      _acceptLiteral(value, out);
    });
    if (expression.namedFieldValues.isNotEmpty) {
      if (expression.positionalFieldValues.isNotEmpty) {
        out.write(', ');
      }
    } else if (expression.positionalFieldValues.length == 1) {
      out.write(',');
    }
    visitAll<MapEntry<String, Object?>>(
        expression.namedFieldValues.entries, out, (entry) {
      out.write('${entry.key}: ');
      _acceptLiteral(entry.value, out);
    });
    return out..write(')');
  });
}