grit_pattern_matcher/
analysis.rs1use crate::{
2 context::{QueryContext, StaticDefinitions},
3 pattern::{Pattern, PatternOrPredicate, Predicate},
4};
5
6pub fn has_rewrite<Q: QueryContext>(
10 current_pattern: &Pattern<Q>,
11 definitions: &StaticDefinitions<Q>,
12) -> bool {
13 for pattern in current_pattern.iter(definitions) {
14 if matches!(pattern, PatternOrPredicate::Pattern(Pattern::Rewrite(_))) {
15 return true;
16 }
17 if matches!(
18 pattern,
19 PatternOrPredicate::Predicate(Predicate::Rewrite(_))
20 ) {
21 return true;
22 }
23 if matches!(
24 pattern,
25 PatternOrPredicate::Predicate(Predicate::Accumulate(_))
26 ) {
27 return true;
28 }
29 }
30 false
31}