check method
void
check(
- DcqRegistry registry
)
Implementation
@override
void check(
DcqRegistry registry,
) {
registry.addBinaryExpression((node) {
final operator = node.operator.lexeme;
if (operator != '&&' && operator != '||') return;
// Avoid reporting on sub-expressions of an already-reported chain.
final parent = node.parent;
if (parent is BinaryExpression && parent.operator.lexeme == operator) {
return;
}
final comparisons = <_Comparison>[];
final negations = <String>[];
final positives = <String>[];
_collectTerms(node, operator, comparisons, negations, positives);
if (_hasNegationContradiction(negations, positives)) {
reportAtNode(node);
return;
}
if (operator == '&&' && _hasComparisonContradiction(comparisons)) {
reportAtNode(node);
}
});
}