diff options
Diffstat (limited to 'tvix')
-rw-r--r-- | tvix/eval/src/builtins/impure.rs | 8 | ||||
-rw-r--r-- | tvix/eval/src/vm.rs | 12 |
2 files changed, 8 insertions, 12 deletions
diff --git a/tvix/eval/src/builtins/impure.rs b/tvix/eval/src/builtins/impure.rs index 904706dc65d9..d371d877977d 100644 --- a/tvix/eval/src/builtins/impure.rs +++ b/tvix/eval/src/builtins/impure.rs @@ -13,7 +13,6 @@ use crate::{ errors::ErrorKind, io::FileType, observer::NoOpObserver, - spans::LightSpan, value::{Builtin, BuiltinArgument, NixAttrs, Thunk}, vm::VM, SourceCode, Value, @@ -123,7 +122,7 @@ pub fn builtins_import(globals: &Weak<GlobalsMap>, source: SourceCode) -> Builti path.push("default.nix"); } - let current_span = vm.current_span(); + let current_span = vm.current_light_span(); if let Some(cached) = vm.import_cache.get(&path) { return Ok(cached.clone()); @@ -172,10 +171,7 @@ pub fn builtins_import(globals: &Weak<GlobalsMap>, source: SourceCode) -> Builti // Compilation succeeded, we can construct a thunk from whatever it spat // out and return that. - let res = Value::Thunk(Thunk::new_suspended( - result.lambda, - LightSpan::new_actual(current_span), - )); + let res = Value::Thunk(Thunk::new_suspended(result.lambda, current_span)); vm.import_cache.insert(path, res.clone()); diff --git a/tvix/eval/src/vm.rs b/tvix/eval/src/vm.rs index fcbbe619092d..b074bd42242d 100644 --- a/tvix/eval/src/vm.rs +++ b/tvix/eval/src/vm.rs @@ -220,17 +220,17 @@ impl<'o> VM<'o> { self.chunk().get_span(self.frame().ip - 1) } - /// Access the I/O handle used for filesystem access in this VM. - pub(crate) fn io(&self) -> &Box<dyn EvalIO> { - &self.io_handle - } - /// Returns the information needed to calculate the current span, /// but without performing that calculation. - fn current_light_span(&self) -> LightSpan { + pub(crate) fn current_light_span(&self) -> LightSpan { LightSpan::new_delayed(self.frame().lambda.clone(), self.frame().ip - 1) } + /// Access the I/O handle used for filesystem access in this VM. + pub(crate) fn io(&self) -> &Box<dyn EvalIO> { + &self.io_handle + } + /// Construct an error from the given ErrorKind and the source /// span of the current instruction. pub fn error(&self, kind: ErrorKind) -> Error { |