fix(tvix/eval): ensure callable is forced when using call_with
When passing multiple arguments, every intermediate callable needs to be forced as this is expected by the VM's call_value function. Also adds a debug assertion for this which makes it easier to spot exactly what went wrong. Change-Id: I3aa519cb6cdaab713bd18282bef901c4cd77c535 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7312 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
parent
e1e8285ecf
commit
994bf03b74
2 changed files with 9 additions and 1 deletions
|
|
@ -133,6 +133,10 @@ impl Thunk {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn is_evaluated(&self) -> bool {
|
||||
matches!(*self.0.borrow(), ThunkRepr::Evaluated(_))
|
||||
}
|
||||
|
||||
/// Returns a reference to the inner evaluated value of a thunk.
|
||||
/// It is an error to call this on a thunk that has not been
|
||||
/// forced, or is not otherwise known to be fully evaluated.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue