about summary refs log tree commit diff
path: root/tvix/eval
diff options
context:
space:
mode:
Diffstat (limited to 'tvix/eval')
-rw-r--r--tvix/eval/src/spans.rs12
-rw-r--r--tvix/eval/src/vm/mod.rs2
2 files changed, 1 insertions, 13 deletions
diff --git a/tvix/eval/src/spans.rs b/tvix/eval/src/spans.rs
index c0130a665428..f422093b0d12 100644
--- a/tvix/eval/src/spans.rs
+++ b/tvix/eval/src/spans.rs
@@ -1,12 +1,9 @@
 //! Utilities for dealing with span tracking in the compiler and in
 //! error reporting.
 
-use crate::opcode::CodeIdx;
-use crate::value::Lambda;
 use codemap::{File, Span};
 use rnix::ast;
 use rowan::ast::AstNode;
-use std::rc::Rc;
 
 /// Helper struct to carry information required for making a span, but
 /// without actually performing the (expensive) span lookup.
@@ -19,17 +16,9 @@ pub enum LightSpan {
     /// The span has already been computed and can just be used right
     /// away.
     Actual { span: Span },
-
-    /// The span needs to be computed from the provided data, but only
-    /// when it is required.
-    Delayed { lambda: Rc<Lambda>, offset: CodeIdx },
 }
 
 impl LightSpan {
-    pub fn new_delayed(lambda: Rc<Lambda>, offset: CodeIdx) -> Self {
-        Self::Delayed { lambda, offset }
-    }
-
     pub fn new_actual(span: Span) -> Self {
         Self::Actual { span }
     }
@@ -37,7 +26,6 @@ impl LightSpan {
     pub fn span(&self) -> Span {
         match self {
             LightSpan::Actual { span } => *span,
-            LightSpan::Delayed { lambda, offset } => lambda.chunk.get_span(*offset),
         }
     }
 }
diff --git a/tvix/eval/src/vm/mod.rs b/tvix/eval/src/vm/mod.rs
index 99a913c46ac9..e11b3b5d13c4 100644
--- a/tvix/eval/src/vm/mod.rs
+++ b/tvix/eval/src/vm/mod.rs
@@ -161,7 +161,7 @@ impl CallFrame {
     /// but without performing that calculation.
     // TODO: why pub?
     pub(crate) fn current_light_span(&self) -> LightSpan {
-        LightSpan::new_delayed(self.lambda.clone(), self.ip - 1)
+        LightSpan::new_actual(self.current_span())
     }
 }