emitArguments method

Iterable<Transform> emitArguments(
  1. StringBuffer buffer, {
  2. required InspectionCache cache,
  3. InstantiatedInspectEntry? parentEntry,
})

Emits the arguments of this function for Dart source generation.

Implementation

Iterable<Transform> emitArguments(
  StringBuffer buffer, {
  required InspectionCache cache,
  InstantiatedInspectEntry? parentEntry,
}) {
  final List<Transform> transforms = <Transform>[];
  for (final Parameter parameter
      in _parametersOfKind(ParameterKind.positional_only)) {
    final (String typeString, Transform transform) =
        _getTypeStringWithTransform(
      parameter,
      cache: cache,
      parentEntry: parentEntry,
    );
    buffer.writeln("$typeString ${parameter.sanitizedName},");
    transforms.add(transform);
  }
  if (_hasKeywordParameters()) {
    buffer.write("{");
    for (final Parameter parameter
        in _parametersOfKind(ParameterKind.var_positional)) {
      buffer.writeln(
        "List<Object?> ${parameter.sanitizedName} ${parameter.defaultString},",
      );
    }
    for (final Parameter parameter
        in _parametersOfKind(ParameterKind.positional_or_keyword)) {
      final (String typeString, Transform transform) =
          _getTypeStringWithTransform(
        parameter,
        cache: cache,
        parentEntry: parentEntry,
      );
      buffer.writeln(
        "${parameter.requiredString} $typeString ${parameter.sanitizedName} ${parameter.defaultString},",
      );
      transforms.add(transform);
    }
    for (final Parameter parameter
        in _parametersOfKind(ParameterKind.keyword_only)) {
      final (String typeString, Transform transform) =
          _getTypeStringWithTransform(
        parameter,
        cache: cache,
        parentEntry: parentEntry,
      );
      buffer.writeln(
        "${parameter.requiredString} $typeString ${parameter.sanitizedName} ${parameter.defaultString},",
      );
      transforms.add(transform);
    }
    for (final Parameter parameter
        in _parametersOfKind(ParameterKind.var_keyword)) {
      buffer.writeln(
        "Map<String, Object?> ${parameter.sanitizedName} ${parameter.defaultString},",
      );
    }
    buffer.write("}");
  }
  return transforms;
}