diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-11-07 14:30:50 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-11-07 14:43:13 +0100 |
| commit | 0a41844cc4e645e87fe48aa31ed3a4fd40a6ab11 (patch) | |
| tree | c7cac97079491c8a11afae1211d7a80415fe64ef /src/model/eval.rs | |
| parent | efd1853d069fbd1476e82d015da4d0d04cfaccc0 (diff) | |
Selectors
Diffstat (limited to 'src/model/eval.rs')
| -rw-r--r-- | src/model/eval.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/model/eval.rs b/src/model/eval.rs index fd43c4c3..2ed8c13b 100644 --- a/src/model/eval.rs +++ b/src/model/eval.rs @@ -7,7 +7,7 @@ use unicode_segmentation::UnicodeSegmentation; use super::{ methods, ops, Arg, Args, Array, CapturesVisitor, Closure, Content, Dict, Flow, Func, - Pattern, Recipe, Scope, Scopes, StyleMap, Transform, Value, Vm, + Recipe, Scope, Scopes, Selector, StyleMap, Transform, Value, Vm, }; use crate::diag::{bail, error, At, SourceResult, StrResult, Trace, Tracepoint}; use crate::geom::{Abs, Angle, Em, Fr, Ratio}; @@ -831,10 +831,12 @@ impl Eval for ast::SetRule { return Ok(StyleMap::new()); } } + let target = self.target(); - let target = target.eval(vm)?.cast::<Func>().at(target.span())?; + let span = target.span(); + let target = target.eval(vm)?.cast::<Func>().at(span)?; let args = self.args().eval(vm)?; - target.set(args) + target.set(args, span) } } @@ -842,16 +844,16 @@ impl Eval for ast::ShowRule { type Output = Recipe; fn eval(&self, vm: &mut Vm) -> SourceResult<Self::Output> { - let pattern = self - .pattern() - .map(|pattern| pattern.eval(vm)?.cast::<Pattern>().at(pattern.span())) + let selector = self + .selector() + .map(|selector| selector.eval(vm)?.cast::<Selector>().at(selector.span())) .transpose()?; let transform = self.transform(); let span = transform.span(); let transform = transform.eval(vm)?.cast::<Transform>().at(span)?; - Ok(Recipe { span, pattern, transform }) + Ok(Recipe { span, selector, transform }) } } |
