Add recursion limiter

This commit is contained in:
JohnnyMorganz 2023-06-09 21:32:43 +01:00
parent ed39250b75
commit 88a965934b

View file

@ -1154,12 +1154,20 @@ ControlFlow ConstraintGraphBuilder::visit(const ScopePtr& scope, AstStatDeclareC
if (FFlag::LuauParseDeclareClassIndexer && declaredClass->indexer) if (FFlag::LuauParseDeclareClassIndexer && declaredClass->indexer)
{ {
// TODO: Recursion limit. RecursionCounter counter{&recursionCount};
if (recursionCount >= FInt::LuauCheckRecursionLimit)
{
reportCodeTooComplex(declaredClass->indexer->location);
}
else
{
ctv->indexer = TableIndexer{ ctv->indexer = TableIndexer{
resolveType(scope, declaredClass->indexer->indexType, /* inTypeArguments */ false), resolveType(scope, declaredClass->indexer->indexType, /* inTypeArguments */ false),
resolveType(scope, declaredClass->indexer->resultType, /* inTypeArguments */ false), resolveType(scope, declaredClass->indexer->resultType, /* inTypeArguments */ false),
}; };
} }
}
for (const AstDeclaredClassProp& prop : declaredClass->props) for (const AstDeclaredClassProp& prop : declaredClass->props)
{ {