diff --git a/crates/hir_def/src/body.rs b/crates/hir_def/src/body.rs index 92bcc17053..c5d6f5fb0f 100644 --- a/crates/hir_def/src/body.rs +++ b/crates/hir_def/src/body.rs @@ -103,8 +103,7 @@ impl Expander { local_scope: Option<&ItemScope>, macro_call: ast::MacroCall, ) -> ExpandResult> { - self.recursion_limit += 1; - if self.recursion_limit > EXPANSION_RECURSION_LIMIT { + if self.recursion_limit + 1 > EXPANSION_RECURSION_LIMIT { mark::hit!(your_stack_belongs_to_me); return ExpandResult::str_err("reached recursion limit during macro expansion".into()); } @@ -165,6 +164,7 @@ impl Expander { log::debug!("macro expansion {:#?}", node.syntax()); + self.recursion_limit += 1; let mark = Mark { file_id: self.current_file_id, ast_id_map: mem::take(&mut self.ast_id_map),