check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  registry.addFunctionExpression((node) {
    final parent = node.parent;

    if (parent is NamedExpression) {
      if ((configStringList(ruleConfig, 'ignored-named-arguments') ??
              const [])
          .contains(parent.name.label.name)) {
        return;
      }
    } else if (parent is! ArgumentList) {
      return;
    }

    if ((configStringList(ruleConfig, 'ignored-invocations') ?? const [])
        .isNotEmpty) {
      final invocation = _findInvocation(node);
      if (invocation != null &&
          (configStringList(ruleConfig, 'ignored-invocations') ?? const [])
              .contains(invocation)) {
        return;
      }
    }

    final body = node.body;
    if (body is! BlockFunctionBody) return;

    if (body.block.statements.length >
        (configInt(ruleConfig, 'allowed-line-count') ?? 3)) {
      reportAtNode(node);
    }
  });
}