diff options
author | Vincent Ambo <mail@tazj.in> | 2023-03-12T21·30+0300 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2023-03-17T19·31+0000 |
commit | 3fa6b13c1e8cbd7a007365dbac0ffc30d03d8472 (patch) | |
tree | 5aa4b1692bc71730408dae780b172b777e4bf815 /tvix/eval/src/value/mod.rs | |
parent | 5095e4f2696ef85ee7c6ae0515eb8d1586459f8c (diff) |
feat(tvix/eval): track span of first force in a thunk blackhole r/6025
This is step 1 towards being able to use all 4 spans that we know when dealing with infinite recursion. It tracks the span at which the force of a thunk was first requested when constructing a blackhole, so that we can highlight the spans of the first and second forces. These are actually the least relevant spans, but the easiest to put in place, more coming soon. Change-Id: I4c7e82f6211b98756439d4148a4191457cc46807 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8269 Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
Diffstat (limited to 'tvix/eval/src/value/mod.rs')
-rw-r--r-- | tvix/eval/src/value/mod.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/tvix/eval/src/value/mod.rs b/tvix/eval/src/value/mod.rs index f57cfda5eecf..77d40b0e3906 100644 --- a/tvix/eval/src/value/mod.rs +++ b/tvix/eval/src/value/mod.rs @@ -22,6 +22,7 @@ mod thunk; use crate::errors::ErrorKind; use crate::opcode::StackIdx; +use crate::spans::LightSpan; use crate::vm::generators::{self, GenCo}; use crate::AddContext; pub use attrs::NixAttrs; @@ -611,9 +612,9 @@ impl Value { } // TODO(amjoseph): de-asyncify this (when called directly by the VM) - pub async fn force(self, co: GenCo) -> Result<Value, ErrorKind> { + pub async fn force(self, co: GenCo, span: LightSpan) -> Result<Value, ErrorKind> { if let Value::Thunk(thunk) = self { - return thunk.force(co).await; + return thunk.force(co, span).await; } Ok(self) |