compute method
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!);
}
}