use diagnostics::LisetteDiagnostic;
use syntax::ast::Expression;
use super::helpers::{expressions_equivalent, is_empty_block};
pub fn check_identical_if_branches(
expression: &Expression,
diagnostics: &mut Vec<LisetteDiagnostic>,
) {
let Expression::If {
consequence,
alternative,
span,
..
} = expression
else {
return;
};
if matches!(
alternative.as_ref(),
Expression::If { .. } | Expression::IfLet { .. }
) {
return;
}
if is_empty_block(consequence) || is_empty_block(alternative) {
return;
}
if !expressions_equivalent(consequence, alternative) {
return;
}
diagnostics.push(diagnostics::lint::identical_if_branches(span));
}