check method
void
check(
- DcqRegistry registry
)
Implementation
@override
void check(
DcqRegistry registry,
) {
registry.addIfStatement((node) {
if (node.elseStatement == null) return;
if (_isPartOfChain(node)) return;
if ((configBool(ruleConfig, 'ignore-nested') ?? false) &&
_isNestedIf(node)) {
return;
}
final thenStmt = _unwrapBlock(node.thenStatement);
final elseStmt = _unwrapBlock(node.elseStatement!);
if (thenStmt == null || elseStmt == null) return;
if (thenStmt is ExpressionStatement &&
elseStmt is ExpressionStatement &&
thenStmt.expression is AssignmentExpression &&
elseStmt.expression is AssignmentExpression) {
final thenAssign = thenStmt.expression as AssignmentExpression;
final elseAssign = elseStmt.expression as AssignmentExpression;
if (thenAssign.leftHandSide.toSource() ==
elseAssign.leftHandSide.toSource()) {
reportAtNode(node);
}
}
if (thenStmt is ReturnStatement &&
elseStmt is ReturnStatement &&
thenStmt.expression != null &&
elseStmt.expression != null) {
reportAtNode(node);
}
});
}