mirror of
https://github.com/luau-lang/luau.git
synced 2025-04-10 22:00:54 +01:00
fix recursionCounter not being reset
This commit is contained in:
parent
4f05a860cb
commit
9231c01f6d
1 changed files with 10 additions and 8 deletions
|
@ -1628,20 +1628,22 @@ AstType* Parser::parseType(bool inDeclarationContext)
|
||||||
{
|
{
|
||||||
Location begin = lexer.current().location;
|
Location begin = lexer.current().location;
|
||||||
|
|
||||||
|
unsigned int oldRecursionCount = recursionCounter;
|
||||||
|
// recursion counter is incremented in parseSimpleType and/or parseTypeSuffix
|
||||||
|
|
||||||
|
AstType* type = nullptr;
|
||||||
|
|
||||||
Lexeme::Type c = lexer.current().type;
|
Lexeme::Type c = lexer.current().type;
|
||||||
if (c == '|' || c == '&')
|
if (c != '|' && c != '&')
|
||||||
{
|
{
|
||||||
return parseTypeSuffix(nullptr, begin);
|
type = parseSimpleType(/* allowPack= */ false, /* in declaration context */ inDeclarationContext).type;
|
||||||
|
recursionCounter = oldRecursionCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int oldRecursionCount = recursionCounter;
|
AstType* typeWithSuffix = parseTypeSuffix(type, begin);
|
||||||
// recursion counter is incremented in parseSimpleType
|
|
||||||
|
|
||||||
AstType* type = parseSimpleType(/* allowPack= */ false, /* in declaration context */ inDeclarationContext).type;
|
|
||||||
|
|
||||||
recursionCounter = oldRecursionCount;
|
recursionCounter = oldRecursionCount;
|
||||||
|
|
||||||
return parseTypeSuffix(type, begin);
|
return typeWithSuffix;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Type ::= nil | Name[`.' Name] [ `<' Type [`,' ...] `>' ] | `typeof' `(' expr `)' | `{' [PropList] `}'
|
// Type ::= nil | Name[`.' Name] [ `<' Type [`,' ...] `>' ] | `typeof' `(' expr `)' | `{' [PropList] `}'
|
||||||
|
|
Loading…
Add table
Reference in a new issue