summaryrefslogtreecommitdiff
path: root/src/model/eval.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-01-27 16:09:35 +0100
committerLaurenz <laurmaedje@gmail.com>2023-01-27 16:09:35 +0100
commita96141a3ea9d1b11ef4cdc924216d8979689e6f0 (patch)
tree0192bdd4e63f3fb3c9172faae35bf8b08c8c957d /src/model/eval.rs
parent2e039cb052fcb768027053cbf02ce396f6d7a6be (diff)
Autocomplete methods
Diffstat (limited to 'src/model/eval.rs')
-rw-r--r--src/model/eval.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/model/eval.rs b/src/model/eval.rs
index d52b1272..3e1ccfa6 100644
--- a/src/model/eval.rs
+++ b/src/model/eval.rs
@@ -46,7 +46,12 @@ pub fn eval(
let route = unsafe { Route::insert(route, id) };
let scopes = Scopes::new(Some(library));
let mut vm = Vm::new(world, route.track(), tracer, id, scopes, 0);
- let result = source.ast()?.eval(&mut vm);
+ let root = match source.root().cast::<ast::Markup>() {
+ Some(markup) if vm.traced.is_some() => markup,
+ _ => source.ast()?,
+ };
+
+ let result = root.eval(&mut vm);
// Handle control flow.
if let Some(flow) = vm.flow {