extern crate gluon_base as base; extern crate gluon_parser as parser; use crate::base::ast::RootExpr; use crate::parser::ParseErrors; use crate::support::*; mod support; fn parse(text: &str) -> Result, ParseErrors> { parse_string(&mut MockEnv::new(), text).map_err(|(_, err)| err) } #[test] fn dont_stack_overflow_on_let_bindings() { let _ = env_logger::try_init(); let text = r#" let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in let _ = 1 in 1 "#; parse(text).unwrap(); }