diff --git a/lib/src/lints/empty_list_concat.rs b/lib/src/lints/empty_list_concat.rs index 4885809..4347a64 100644 --- a/lib/src/lints/empty_list_concat.rs +++ b/lib/src/lints/empty_list_concat.rs @@ -32,22 +32,23 @@ struct EmptyListConcat; impl Rule for EmptyListConcat { fn validate(&self, node: &SyntaxElement, _sess: &SessionInfo) -> Option { - if let NodeOrToken::Node(node) = node - && let Some(bin_expr) = BinOp::cast(node.clone()) - && let Some(lhs) = bin_expr.lhs() - && let Some(rhs) = bin_expr.rhs() - && let Some(op) = bin_expr.operator() - && let BinOpKind::Concat = op - { - let at = node.text_range(); - let message = "Concatenation with the empty list, `[]`, is a no-op"; - if is_empty_array(&lhs) { - Some(self.report().suggest(at, message, Suggestion::new(at, rhs))) - } else if is_empty_array(&rhs) { - Some(self.report().suggest(at, message, Suggestion::new(at, lhs))) - } else { - None - } + let NodeOrToken::Node(node) = node else { + return None; + }; + + let bin_expr = BinOp::cast(node.clone())?; + let lhs = bin_expr.lhs()?; + let rhs = bin_expr.rhs()?; + let Some(BinOpKind::Concat) = bin_expr.operator() else { + return None; + }; + + let at = node.text_range(); + let message = "Concatenation with the empty list, `[]`, is a no-op"; + if is_empty_array(&lhs) { + Some(self.report().suggest(at, message, Suggestion::new(at, rhs))) + } else if is_empty_array(&rhs) { + Some(self.report().suggest(at, message, Suggestion::new(at, lhs))) } else { None }