fix(tvix/eval): catchable in type field of nix_eq()

Change-Id: I165ff77764e272cc94d18cb03ad6cbc9a8ebefde
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10348
Autosubmit: Adam Joseph <adam@westernsemico.com>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
This commit is contained in:
Adam Joseph 2023-12-12 21:18:09 -08:00 committed by tazjin
parent 2af8174e2e
commit 7ddea7340f
5 changed files with 26 additions and 8 deletions

View file

@ -547,8 +547,16 @@ impl Value {
#[allow(clippy::single_match)] // might need more match arms later
match (a1.select("type"), a2.select("type")) {
(Some(v1), Some(v2)) => {
let s1 = v1.clone().force(co, span.clone()).await?.to_str();
let s2 = v2.clone().force(co, span.clone()).await?.to_str();
let s1 = v1.clone().force(co, span.clone()).await?;
if s1.is_catchable() {
return Ok(s1);
}
let s2 = v2.clone().force(co, span.clone()).await?;
if s2.is_catchable() {
return Ok(s2);
}
let s1 = s1.to_str();
let s2 = s2.to_str();
if let (Ok(s1), Ok(s2)) = (s1, s2) {
if s1.as_str() == "derivation" && s2.as_str() == "derivation" {