--- a/crates/jrsonnet-evaluator/src/obj.rs +++ b/crates/jrsonnet-evaluator/src/obj.rs @@ -86,11 +86,14 @@ Rc::try_unwrap(out).unwrap().into_inner() } pub fn visible_fields(&self) -> Vec> { - self.fields_visibility() + let mut visible_fields: Vec<_> = self + .fields_visibility() .into_iter() .filter(|(_k, v)| *v) .map(|(k, _)| k) - .collect() + .collect(); + visible_fields.sort(); + visible_fields } pub fn get(&self, key: Rc) -> Result> { if let Some(v) = self.0.value_cache.borrow().get(&key) { --- a/crates/jrsonnet-evaluator/src/val.rs +++ b/crates/jrsonnet-evaluator/src/val.rs @@ -255,8 +255,7 @@ } Val::Obj(obj) => { buf.push_str("{\n"); - let mut fields = obj.visible_fields(); - fields.sort(); + let fields = obj.visible_fields(); if !fields.is_empty() { let old_len = cur_padding.len(); cur_padding.push_str(padding);