mirror of
https://github.com/luau-lang/luau.git
synced 2025-05-04 10:33:46 +01:00
Add recursion limiter
This commit is contained in:
parent
ed39250b75
commit
88a965934b
1 changed files with 13 additions and 5 deletions
|
@ -1154,11 +1154,19 @@ ControlFlow ConstraintGraphBuilder::visit(const ScopePtr& scope, AstStatDeclareC
|
||||||
|
|
||||||
if (FFlag::LuauParseDeclareClassIndexer && declaredClass->indexer)
|
if (FFlag::LuauParseDeclareClassIndexer && declaredClass->indexer)
|
||||||
{
|
{
|
||||||
// TODO: Recursion limit.
|
RecursionCounter counter{&recursionCount};
|
||||||
ctv->indexer = TableIndexer{
|
|
||||||
resolveType(scope, declaredClass->indexer->indexType, /* inTypeArguments */ false),
|
if (recursionCount >= FInt::LuauCheckRecursionLimit)
|
||||||
resolveType(scope, declaredClass->indexer->resultType, /* inTypeArguments */ false),
|
{
|
||||||
};
|
reportCodeTooComplex(declaredClass->indexer->location);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ctv->indexer = TableIndexer{
|
||||||
|
resolveType(scope, declaredClass->indexer->indexType, /* inTypeArguments */ false),
|
||||||
|
resolveType(scope, declaredClass->indexer->resultType, /* inTypeArguments */ false),
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const AstDeclaredClassProp& prop : declaredClass->props)
|
for (const AstDeclaredClassProp& prop : declaredClass->props)
|
||||||
|
|
Loading…
Add table
Reference in a new issue