check method

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

Implementation

@override
void check(
  DcqRegistry registry,
) {
  registry.addSwitchStatement((node) {
    if (node.members.isEmpty) return;

    final allReturn = node.members.every((member) {
      final statements = member.statements;
      if (statements.isEmpty) {
        return configBool(ruleConfig, 'ignore-fallthrough-cases') ?? false;
      }
      if (statements.length != 1) return false;
      final stmt = statements.first;
      return stmt is ReturnStatement && stmt.expression != null;
    });

    if (allReturn) {
      reportAtNode(node);
    }
  });
}