refactor(tvix/eval): add opcode::Count type for less ambiguity
Change-Id: Ibde0b2baa1128a74c1364ee9a6330b62db3da699 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6288 Autosubmit: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
parent
c73e84d957
commit
2f93ed297e
3 changed files with 23 additions and 17 deletions
|
|
@ -6,7 +6,7 @@ use std::rc::Rc;
|
|||
use crate::{
|
||||
chunk::Chunk,
|
||||
errors::{ErrorKind, EvalResult},
|
||||
opcode::{JumpOffset, OpCode, StackIdx},
|
||||
opcode::{Count, JumpOffset, OpCode, StackIdx},
|
||||
value::{Closure, Lambda, NixAttrs, NixList, Value},
|
||||
};
|
||||
|
||||
|
|
@ -199,8 +199,8 @@ impl VM {
|
|||
OpCode::OpTrue => self.push(Value::Bool(true)),
|
||||
OpCode::OpFalse => self.push(Value::Bool(false)),
|
||||
|
||||
OpCode::OpAttrs(count) => self.run_attrset(count)?,
|
||||
OpCode::OpAttrPath(count) => self.run_attr_path(count)?,
|
||||
OpCode::OpAttrs(Count(count)) => self.run_attrset(count)?,
|
||||
OpCode::OpAttrPath(Count(count)) => self.run_attr_path(count)?,
|
||||
|
||||
OpCode::OpAttrsUpdate => {
|
||||
let rhs = unwrap_or_clone_rc(self.pop().to_attrs()?);
|
||||
|
|
@ -252,7 +252,7 @@ impl VM {
|
|||
self.push(Value::Bool(result));
|
||||
}
|
||||
|
||||
OpCode::OpList(count) => {
|
||||
OpCode::OpList(Count(count)) => {
|
||||
let list =
|
||||
NixList::construct(count, self.stack.split_off(self.stack.len() - count));
|
||||
self.push(Value::List(list));
|
||||
|
|
@ -264,7 +264,7 @@ impl VM {
|
|||
self.push(Value::List(lhs.concat(&rhs)))
|
||||
}
|
||||
|
||||
OpCode::OpInterpolate(count) => self.run_interpolate(count)?,
|
||||
OpCode::OpInterpolate(Count(count)) => self.run_interpolate(count)?,
|
||||
|
||||
OpCode::OpJump(JumpOffset(offset)) => {
|
||||
self.frame_mut().ip += offset;
|
||||
|
|
@ -306,7 +306,7 @@ impl VM {
|
|||
|
||||
// Remove the given number of elements from the stack,
|
||||
// but retain the top value.
|
||||
OpCode::OpCloseScope(count) => {
|
||||
OpCode::OpCloseScope(Count(count)) => {
|
||||
// Immediately move the top value into the right
|
||||
// position.
|
||||
let target_idx = self.stack.len() - 1 - count;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue