Bump macro recursion limit in release

This commit is contained in:
Aleksey Kladov 2020-07-11 20:01:56 +02:00
parent a8891ae3ca
commit b4443b0398

View file

@ -46,6 +46,12 @@ pub(crate) struct Expander {
recursion_limit: usize, recursion_limit: usize,
} }
#[cfg(test)]
const EXPANSION_RECURSION_LIMIT: usize = 32;
#[cfg(not(test))]
const EXPANSION_RECURSION_LIMIT: usize = 128;
impl CfgExpander { impl CfgExpander {
pub(crate) fn new( pub(crate) fn new(
db: &dyn DefDatabase, db: &dyn DefDatabase,
@ -93,7 +99,7 @@ impl Expander {
macro_call: ast::MacroCall, macro_call: ast::MacroCall,
) -> Option<(Mark, T)> { ) -> Option<(Mark, T)> {
self.recursion_limit += 1; self.recursion_limit += 1;
if self.recursion_limit > 32 { if self.recursion_limit > EXPANSION_RECURSION_LIMIT {
mark::hit!(your_stack_belongs_to_me); mark::hit!(your_stack_belongs_to_me);
return None; return None;
} }
@ -341,7 +347,7 @@ mod tests {
fn your_stack_belongs_to_me() { fn your_stack_belongs_to_me() {
mark::check!(your_stack_belongs_to_me); mark::check!(your_stack_belongs_to_me);
lower( lower(
r" "
macro_rules! n_nuple { macro_rules! n_nuple {
($e:tt) => (); ($e:tt) => ();
($($rest:tt)*) => {{ ($($rest:tt)*) => {{