pub struct Predicate {
pub free_vars: Vec<(String, QuantifierType)>,
pub expr: Spanned<ResolvedExpr>,
}Expand description
A bool predicate with explicit free-variable context. Stays in
Spanned<Expr> form so backends can route through their
existing emit_expr paths; the context is what gives backends
the information they need to project (e.g. .val) without
re-walking the AST.
Fields§
§free_vars: Vec<(String, QuantifierType)>Variables the predicate may reference, in declaration order.
Each entry tells the backend what type the var has in the
target language — same logic as Quantifier.binder_type.
expr: Spanned<ResolvedExpr>The expression. Already in the target variable space (e.g. caller-derived predicates have had caller-arg names substituted to callee-param names).
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Predicate
impl RefUnwindSafe for Predicate
impl Send for Predicate
impl Sync for Predicate
impl Unpin for Predicate
impl UnsafeUnpin for Predicate
impl UnwindSafe for Predicate
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more