Signed-off-by: Ville Lindholm <ville@lindholm.dev>
This commit is contained in:
Ville Lindholm 2025-04-05 12:12:25 +03:00
parent fb971b217c
commit 9098bf4d7e
No known key found for this signature in database
2 changed files with 28 additions and 22 deletions

View file

@ -440,11 +440,7 @@ impl Evaluatable for StepExpr {
trace!("[StepExpr] Filtering got nodes {:?}", filtered_nodes); trace!("[StepExpr] Filtering got nodes {:?}", filtered_nodes);
if axis_step if axis_step.predicates.predicates.is_empty() {
.predicates
.predicates
.is_empty()
{
trace!( trace!(
"[StepExpr] No predicates, returning nodes {:?}", "[StepExpr] No predicates, returning nodes {:?}",
filtered_nodes filtered_nodes
@ -567,10 +563,7 @@ impl Evaluatable for FilterExpr {
} }
fn is_primitive(&self) -> bool { fn is_primitive(&self) -> bool {
self.predicates self.predicates.predicates.is_empty() && self.primary.is_primitive()
.predicates
.is_empty() &&
self.primary.is_primitive()
} }
} }

View file

@ -700,10 +700,7 @@ fn filter_expr(input: &str) -> IResult<&str, FilterExpr> {
fn predicate_list(input: &str) -> IResult<&str, PredicateListExpr> { fn predicate_list(input: &str) -> IResult<&str, PredicateListExpr> {
let (input, predicates) = many0(predicate)(input)?; let (input, predicates) = many0(predicate)(input)?;
Ok(( Ok((input, PredicateListExpr { predicates }))
input,
PredicateListExpr { predicates },
))
} }
fn predicate(input: &str) -> IResult<&str, PredicateExpr> { fn predicate(input: &str) -> IResult<&str, PredicateExpr> {
@ -1106,7 +1103,7 @@ mod tests {
local_part: "class".to_string(), local_part: "class".to_string(),
}), }),
predicates: PredicateListExpr { predicates: PredicateListExpr {
predicates: vec![] predicates: vec![],
}, },
})], })],
})), })),
@ -1117,7 +1114,9 @@ mod tests {
primary: PrimaryExpr::Literal(Literal::String( primary: PrimaryExpr::Literal(Literal::String(
"test".to_string(), "test".to_string(),
)), )),
predicates: PredicateListExpr { predicates: vec![] }, predicates: PredicateListExpr {
predicates: vec![],
},
})], })],
})), })),
)), )),
@ -1151,7 +1150,9 @@ mod tests {
primary: PrimaryExpr::Function( primary: PrimaryExpr::Function(
CoreFunction::Position, CoreFunction::Position,
), ),
predicates: PredicateListExpr { predicates: vec![] }, predicates: PredicateListExpr {
predicates: vec![],
},
})], })],
})), })),
RelationalOp::Gt, RelationalOp::Gt,
@ -1162,7 +1163,9 @@ mod tests {
primary: PrimaryExpr::Literal(Literal::Numeric( primary: PrimaryExpr::Literal(Literal::Numeric(
NumericLiteral::Integer(1), NumericLiteral::Integer(1),
)), )),
predicates: PredicateListExpr { predicates: vec![] }, predicates: PredicateListExpr {
predicates: vec![],
},
})], })],
})), })),
), ),
@ -1212,7 +1215,9 @@ mod tests {
prefix: Some("xml".to_string()), prefix: Some("xml".to_string()),
local_part: "id".to_string(), local_part: "id".to_string(),
}), }),
predicates: PredicateListExpr { predicates: vec![] }, predicates: PredicateListExpr {
predicates: vec![],
},
})], })],
})), })),
EqualityOp::Eq, EqualityOp::Eq,
@ -1223,7 +1228,9 @@ mod tests {
primary: PrimaryExpr::Literal(Literal::String( primary: PrimaryExpr::Literal(Literal::String(
"id1".to_string(), "id1".to_string(),
)), )),
predicates: PredicateListExpr { predicates: vec![] }, predicates: PredicateListExpr {
predicates: vec![],
},
})], })],
})), })),
), ),
@ -1253,7 +1260,9 @@ mod tests {
prefix: None, prefix: None,
local_part: "title".to_string(), local_part: "title".to_string(),
}), }),
predicates: PredicateListExpr { predicates: vec![] }, predicates: PredicateListExpr {
predicates: vec![],
},
})], })],
}), }),
}, },
@ -1268,7 +1277,9 @@ mod tests {
prefix: Some("xml".to_string()), prefix: Some("xml".to_string()),
local_part: "lang".to_string(), local_part: "lang".to_string(),
}), }),
predicates: PredicateListExpr { predicates: vec![] }, predicates: PredicateListExpr {
predicates: vec![],
},
})], })],
})), })),
EqualityOp::Eq, EqualityOp::Eq,
@ -1279,7 +1290,9 @@ mod tests {
primary: PrimaryExpr::Literal(Literal::String( primary: PrimaryExpr::Literal(Literal::String(
"en-GB".to_string(), "en-GB".to_string(),
)), )),
predicates: PredicateListExpr { predicates: vec![] }, predicates: PredicateListExpr {
predicates: vec![],
},
})], })],
})), })),
), ),