difftreelog
fix ensure stack for deep manifest recursion
in: master
1 file changed
crates/jrsonnet-evaluator/src/manifest.rsdiffbeforeafterboth1use std::{borrow::Cow, fmt::Write, hint::black_box, ptr};1use std::{borrow::Cow, fmt::Write, hint::black_box, ptr};223use crate::{Result, ResultExt, Val, bail, in_description_frame};3use crate::{4 bail, evaluate::ensure_sufficient_stack, in_description_frame, Error,5 Result, ResultExt, Val,6};47252 write!(buf, "{:?}", n.to_string()).unwrap();255 write!(buf, "{:?}", n.to_string()).unwrap();253 }256 }254 }257 }255 Val::Arr(items) => {258 Val::Arr(items) => ensure_sufficient_stack(|| {256 buf.push('[');259 buf.push('[');257260258 let old_len = cur_padding.len();261 let old_len = cur_padding.len();304 }307 }305308306 buf.push(']');309 buf.push(']');310 Ok::<_, Error>(())307 }311 })?,308 Val::Obj(obj) => {312 Val::Obj(obj) => ensure_sufficient_stack(|| {309 obj.run_assertions()?;313 obj.run_assertions()?;310 buf.push('{');314 buf.push('{');311315366 }370 }367371368 buf.push('}');372 buf.push('}');373 Ok::<_, Error>(())369 }374 })?,370 Val::Func(_) => bail!("tried to manifest function"),375 Val::Func(_) => bail!("tried to manifest function"),371 }376 }372 Ok(())377 Ok(())