feat(tvix/eval): Support builtins.bitOr

Bitwise `or` on integers.

Change-Id: I45b0897331d1a9b6840f9d0feedcf10acc67fcec
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6549
Autosubmit: wpcarro <wpcarro@gmail.com>
Reviewed-by: wpcarro <wpcarro@gmail.com>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This commit is contained in:
William Carroll 2022-09-05 22:17:04 -07:00 committed by clbot
parent f5f6bd319d
commit 031ca653a3
3 changed files with 18 additions and 0 deletions

View file

@ -108,6 +108,13 @@ fn pure_builtins() -> Vec<Builtin> {
})
})
}),
Builtin::new("bitOr", 2, |args, vm| {
force!(vm, &args[0], x, {
force!(vm, &args[1], y, {
Ok(Value::Integer(x.as_int()? | y.as_int()?))
})
})
}),
Builtin::new("catAttrs", 2, |mut args, _| {
let list = args.pop().unwrap().to_list()?;
let key = args.pop().unwrap().to_str()?;