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 {
  final MethodInvocation invocation = node as MethodInvocation;
  final NodeList<Expression> args = invocation.argumentList.arguments;
  if (args.isEmpty) return;
  final Expression firstArg = args.first;
  if (firstArg is! FunctionExpression) return;

  final String rewrite = buildRewriteText(firstArg);

  await builder.addDartFileEdit(file, (DartFileEditBuilder b) {
    b.addReplacement(range.node(firstArg), (DartEditBuilder editBuilder) {
      editBuilder.write(rewrite);
    });
  });
}