chore(tvix/eval): Pass in VM to nix_eq

Pass in, but ignore, a mutable reference to the VM to the `nix_eq`
functions, in preparation for using that VM to force thunks during
comparison.

Change-Id: I565435d8dfb33768f930fdb5a6b0fb1365d7e161
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6651
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
Griffin Smith 2022-09-18 15:13:20 -04:00 committed by clbot
parent 915ff5ac2a
commit 0b76ed5615
5 changed files with 55 additions and 20 deletions

View file

@ -2,6 +2,7 @@
use std::fmt::Display;
use crate::errors::ErrorKind;
use crate::vm::VM;
use super::Value;
@ -83,13 +84,13 @@ impl NixList {
}
/// Compare `self` against `other` for equality using Nix equality semantics
pub fn nix_eq(&self, other: &Self) -> Result<bool, ErrorKind> {
pub fn nix_eq(&self, other: &Self, vm: &mut VM) -> Result<bool, ErrorKind> {
if self.len() != other.len() {
return Ok(false);
}
for (v1, v2) in self.iter().zip(other.iter()) {
if !v1.nix_eq(v2)? {
if !v1.nix_eq(v2, vm)? {
return Ok(false);
}
}