copyToMethodBody function

String copyToMethodBody(
  1. ClassElement clazz,
  2. Iterable<String> fields
)

Implementation

String copyToMethodBody(ClassElement clazz, Iterable<String> fields) {
  final paramsInput = fields.fold(
    "",
    (r, field) => "$r ${field}: ${field} ?? this.${field},",
  );

  final typeParameters = clazz.typeParameters.isEmpty
      ? ''
      : '<' + clazz.typeParameters.map((type) => type.name).join(',') + '>';

  return '''return ${clazz.name}$typeParameters($paramsInput);''';
}