git.delta.rocks / jrsonnet / refs/commits / 20298650f833

difftreelog

fix lazy array initialization

Yaroslav Bolyukin2023-08-10parent: #55128e2.patch.diff
in: master

2 files changed

modifiedcrates/jrsonnet-evaluator/src/evaluate/mod.rsdiffbeforeafterboth
18 throw,18 throw,
19 typed::Typed,19 typed::Typed,
20 val::{CachedUnbound, IndexableVal, StrValue, Thunk, ThunkValue},20 val::{CachedUnbound, IndexableVal, StrValue, Thunk, ThunkValue},
21 Context, GcHashMap, ObjValue, ObjValueBuilder, ObjectAssertion, Pending, Result, State,21 Context, GcHashMap, ObjValue, ObjValueBuilder, ObjectAssertion, Pending, Result, ResultExt,
22 Unbound, Val,22 State, Unbound, Val,
23};23};
24pub mod destructure;24pub mod destructure;
134134
135 let fctx = Pending::new();135 let fctx = Pending::new();
136 let mut new_bindings = GcHashMap::with_capacity(var.capacity_hint());136 let mut new_bindings = GcHashMap::with_capacity(var.capacity_hint());
137 let value = Thunk::evaluated(Val::Arr(ArrValue::lazy(Cc::new(vec![137 let value = Thunk::evaluated(Val::Arr(ArrValue::lazy(vec![
138 Thunk::evaluated(Val::Str(StrValue::Flat(field.clone()))),138 Thunk::evaluated(Val::Str(StrValue::Flat(field.clone()))),
139 Thunk::new(ObjectFieldThunk {139 Thunk::new(ObjectFieldThunk {
140 field: field.clone(),140 field: field.clone(),
141 obj: obj.clone(),141 obj: obj.clone(),
142 }),142 }),
143 ]))));143 ])));
144 destruct(var, value, fctx.clone(), &mut new_bindings)?;144 destruct(var, value, fctx.clone(), &mut new_bindings)?;
145 let ctx = ctx145 let ctx = ctx
146 .clone()146 .clone()
modifiedcrates/jrsonnet-parser/src/expr.rsdiffbeforeafterboth
--- a/crates/jrsonnet-parser/src/expr.rs
+++ b/crates/jrsonnet-parser/src/expr.rs
@@ -26,6 +26,7 @@
 #[cfg_attr(feature = "structdump", derive(Codegen))]
 #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
 #[derive(Debug, Clone, Copy, PartialEq, Eq, Trace)]
+#[repr(u8)]
 pub enum Visibility {
 	/// :
 	Normal,