diff options
author | Adam Joseph <adam@westernsemico.com> | 2022-11-28T08·18-0800 |
---|---|---|
committer | tazjin <tazjin@tvl.su> | 2022-12-21T14·50+0000 |
commit | 922bf7aca9f4d4f4834ba5de7841ff58015c8791 (patch) | |
tree | fea67c12705be543fb569860573a8149208868c2 /tvix/eval/src/value/thunk.rs | |
parent | e04b1697e4f4e8236418571c1f5938f0a9717bb7 (diff) |
feat(tvix/eval): remove `derive(Copy)` from Upvalues r/5453
Change-Id: I0fa069fbeff6718a765ece948c2c1bce285496f7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7449 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/eval/src/value/thunk.rs')
-rw-r--r-- | tvix/eval/src/value/thunk.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/tvix/eval/src/value/thunk.rs b/tvix/eval/src/value/thunk.rs index 54d2b31a2b1c..9f1415989335 100644 --- a/tvix/eval/src/value/thunk.rs +++ b/tvix/eval/src/value/thunk.rs @@ -47,7 +47,7 @@ enum ThunkRepr { /// execution. Suspended { lambda: Rc<Lambda>, - upvalues: Upvalues, + upvalues: Rc<Upvalues>, span: Span, }, @@ -78,7 +78,7 @@ impl Thunk { pub fn new_suspended(lambda: Rc<Lambda>, span: Span) -> Self { Thunk(Rc::new(RefCell::new(ThunkRepr::Suspended { - upvalues: Upvalues::with_capacity(lambda.upvalue_count), + upvalues: Rc::new(Upvalues::with_capacity(lambda.upvalue_count)), lambda: lambda.clone(), span, }))) @@ -144,7 +144,7 @@ impl Thunk { pub fn upvalues(&self) -> Ref<'_, Upvalues> { Ref::map(self.0.borrow(), |thunk| match thunk { - ThunkRepr::Suspended { upvalues, .. } => upvalues, + ThunkRepr::Suspended { upvalues, .. } => upvalues.as_ref(), ThunkRepr::Evaluated(Value::Closure(c)) => &c.upvalues, _ => panic!("upvalues() on non-suspended thunk"), }) @@ -152,7 +152,7 @@ impl Thunk { pub fn upvalues_mut(&self) -> RefMut<'_, Upvalues> { RefMut::map(self.0.borrow_mut(), |thunk| match thunk { - ThunkRepr::Suspended { upvalues, .. } => upvalues, + ThunkRepr::Suspended { upvalues, .. } => Rc::get_mut(upvalues).unwrap(), ThunkRepr::Evaluated(Value::Closure(c)) => Rc::get_mut( &mut Rc::get_mut(c).unwrap().upvalues, ) |