check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  registry.addInstanceCreationExpression((node) {
    for (final arg in node.argumentList.arguments) {
      if (arg is! NamedExpression) continue;

      final name = arg.name.label.name;
      if (!name.startsWith('on')) continue;
      if ((configStringList(ruleConfig, 'ignored-named-arguments') ??
              const [])
          .contains(name)) {
        continue;
      }

      final value = arg.expression;
      if (value is! FunctionExpression) continue;

      final body = value.body;
      if (body is! BlockFunctionBody) continue;

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