Skip to main content

luaur_ast/methods/
parser_increment_recursion_counter.rs

1use crate::records::parse_error::ParseError;
2use crate::records::parser::Parser;
3
4impl Parser {
5    pub fn increment_recursion_counter(&mut self, context: &str) {
6        self.recursion_counter += 1;
7
8        let limit = luaur_common::FInt::LuauRecursionLimit.get();
9
10        if self.recursion_counter > limit as u32 {
11            ParseError::raise(
12                self.lexer.current().location,
13                format_args!(
14                    "Exceeded allowed recursion depth; simplify your {} to make the code compile",
15                    context
16                ),
17            );
18        }
19    }
20}
21
22#[allow(non_snake_case)]
23pub fn parser_increment_recursion_counter(parser: &mut Parser, context: &str) {
24    parser.increment_recursion_counter(context);
25}