diff options
author | Vincent Ambo <mail@tazj.in> | 2022-08-26T17·54+0300 |
---|---|---|
committer | tazjin <tazjin@tvl.su> | 2022-09-03T13·22+0000 |
commit | c73e84d95777c304f1b208cbc43b01012df73262 (patch) | |
tree | 88efee3ba7d312afd5f9cc3875b960172aadd99d /tvix/eval/src/opcode.rs | |
parent | 2cdc6192b47dbba221d158de31800035c738fdc7 (diff) |
refactor(tvix/eval): add opcode::StackIdx type for less ambiguity r/4621
Change-Id: I9b9de1f681972c205d4d20bc5731d2ce79858edb Reviewed-on: https://cl.tvl.fyi/c/depot/+/6287 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
Diffstat (limited to 'tvix/eval/src/opcode.rs')
-rw-r--r-- | tvix/eval/src/opcode.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/tvix/eval/src/opcode.rs b/tvix/eval/src/opcode.rs index f265ef06d7f5..82b72952d698 100644 --- a/tvix/eval/src/opcode.rs +++ b/tvix/eval/src/opcode.rs @@ -11,6 +11,11 @@ pub struct ConstantIdx(pub usize); #[derive(Clone, Copy, Debug)] pub struct CodeIdx(pub usize); +/// Index of a value in the runtime stack. +#[repr(transparent)] +#[derive(Clone, Copy, Debug)] +pub struct StackIdx(pub usize); + /// Offset by which an instruction pointer should change in a jump. #[repr(transparent)] #[derive(Clone, Copy, Debug)] @@ -63,7 +68,7 @@ pub enum OpCode { OpAttrsIsSet, // `with`-handling - OpPushWith(usize), + OpPushWith(StackIdx), OpPopWith, OpResolveWith, @@ -78,7 +83,7 @@ pub enum OpCode { OpAssertBool, // Access local identifiers with statically known positions. - OpGetLocal(usize), + OpGetLocal(StackIdx), // Close scopes while leaving their expression value around. OpCloseScope(usize), // number of locals to pop |