compute method

  1. @override
Future<void> compute(
  1. ChangeBuilder builder
)
override

Computes the changes for this producer using builder.

This method should not modify fixKind.

Implementation

@override
Future<void> compute(ChangeBuilder builder) async {
  Future<void> removeComma(Token token) {
    if (token.type != .COMMA) return Future.value();
    return builder.addDartFileEdit(file, (builder) {
      builder.addDeletion(token.sourceRange);
    });
  }

  switch (node) {
    case ArgumentList(:final rightParenthesis):
      await removeComma(rightParenthesis.previous!);
    case AssertInitializer(:final rightParenthesis):
      await removeComma(rightParenthesis.previous!);
    case AssertStatement(:final rightParenthesis):
      await removeComma(rightParenthesis.previous!);
    case FormalParameterList(:final rightDelimiter, :final rightParenthesis):
      await removeComma((rightDelimiter ?? rightParenthesis).previous!);
    case ListLiteral(:final rightBracket):
      await removeComma(rightBracket.previous!);
    case SetOrMapLiteral(:final rightBracket):
      await removeComma(rightBracket.previous!);
    case RecordLiteral(:final rightParenthesis):
      await removeComma(rightParenthesis.previous!);
    case RecordPattern(:final rightParenthesis):
      await removeComma(rightParenthesis.previous!);
    case RecordTypeAnnotation(:final namedFields, :final rightParenthesis):
      await removeComma(
        (namedFields?.rightBracket ?? rightParenthesis).previous!,
      );
    case SwitchExpression(:final rightBracket):
      await removeComma(rightBracket.previous!);
    case ObjectPattern(:final rightParenthesis):
      await removeComma(rightParenthesis.previous!);
    case ListPattern(:final rightBracket):
      await removeComma(rightBracket.previous!);
    case MapPattern(:final rightBracket):
      await removeComma(rightBracket.previous!);
    case BlockEnumBody(:final semicolon, :final rightBracket):
      await removeComma((semicolon ?? rightBracket).previous!);
  }
}