diff --git a/src/backend/rust.rs b/src/backend/rust.rs index ea0d412..b53914d 100644 --- a/src/backend/rust.rs +++ b/src/backend/rust.rs @@ -563,7 +563,7 @@ impl RustOutput { .as_bytes(), )?; if let Some(regex) = rule.regex(cst) { - if recursive.map_or(false, |recursive| { + if recursive.is_some_and(|recursive| { recursive .branches() .iter() diff --git a/src/frontend/sema.rs b/src/frontend/sema.rs index bbd6981..76effb0 100644 --- a/src/frontend/sema.rs +++ b/src/frontend/sema.rs @@ -268,7 +268,7 @@ impl<'a> GeneralCheck<'a> { let mut open = HashSet::new(); let mut created = HashMap::new(); let mut used = HashSet::new(); - let left_rec = sema.recursive.get(&rule).map_or(false, |rec| { + let left_rec = sema.recursive.get(&rule).is_some_and(|rec| { rec.branches() .iter() .any(|branch| matches!(branch, Recursion::Left(..) | Recursion::LeftRight(..))) @@ -538,7 +538,7 @@ impl<'a> GeneralCheck<'a> { && (sema .elision .get(&alt_op.syntax()) - .map_or(false, |elision| *elision != RuleNodeElision::None) + .is_some_and(|elision| *elision != RuleNodeElision::None) || rule.is_elided(cst)) { diags.push(Diagnostic::elide_left_rec(&alt_op.span(cst))); @@ -974,7 +974,7 @@ impl<'a> LL1Validator { } Regex::Paren(paren) => paren .inner(cst) - .map_or(false, |inner| Self::has_predicate(cst, inner)), + .is_some_and(|inner| Self::has_predicate(cst, inner)), _ => false, } } @@ -1151,7 +1151,7 @@ impl<'a> LL1Validator { if sema .first_sets .get(&name.syntax()) - .map_or(false, |first| first.is_empty()) + .is_some_and(|first| first.is_empty()) { diags.push(Diagnostic::consume_tokens(®ex.span(cst))); } diff --git a/src/ide/lookup.rs b/src/ide/lookup.rs index d9aedfc..eba9528 100644 --- a/src/ide/lookup.rs +++ b/src/ide/lookup.rs @@ -11,10 +11,7 @@ fn contains(span: &Span, pos: usize) -> bool { pub fn lookup_node(cst: &Cst, node: NodeRef, pos: usize) -> Option { cst.children(node) .filter(|node| matches!(cst.get(*node), Node::Rule(..))) - .find(|node| { - cst.get_span(*node) - .map_or(false, |span| contains(&span, pos)) - }) + .find(|node| cst.get_span(*node).is_some_and(|span| contains(&span, pos))) .and_then(|node| lookup_node(cst, node, pos).or(Some(node))) } pub fn find_node bool>( @@ -31,10 +28,7 @@ pub fn find_node bool>( false } }) - .find(|node| { - cst.get_span(*node) - .map_or(false, |span| contains(&span, pos)) - }) + .find(|node| cst.get_span(*node).is_some_and(|span| contains(&span, pos))) .and_then(|node| find_node(cst, node, pos, pred).or(Some(node))) }