check method

  1. @override
void check(
  1. DcqRegistry registry
)

Implementation

@override
void check(
  DcqRegistry registry,
) {
  registry.addBlock((node) {
    final statements = node.statements;
    if (statements.length < 2) return;

    var i = 0;
    while (i < statements.length) {
      final target = _getAddTarget(statements[i]);
      if (target == null) {
        i++;
        continue;
      }

      var j = i + 1;
      while (j < statements.length &&
          _getAddTarget(statements[j]) == target) {
        j++;
      }

      if (j - i >= 2) {
        for (var k = i; k < j; k++) {
          final expr =
              (statements[k] as ExpressionStatement).expression
                  as MethodInvocation;
          reportAtNode(expr);
        }
      }

      i = j;
    }
  });
}