@@ -146,7 +146,7 @@ class Parser
146146 AstExpr* parseFunctionName (bool & hasself, AstName& debugname);
147147
148148 // function funcname funcbody
149- LUAU_FORCEINLINE AstStat * parseFunctionStat (const AstArray<AstAttr*>& attributes = {nullptr , 0 });
149+ LUAU_FORCEINLINE AstStatFunction * parseFunctionStat (const AstArray<AstAttr*>& attributes = {nullptr , 0 });
150150
151151 std::optional<AstAttr::Type> validateAttribute (
152152 Location loc,
@@ -178,6 +178,8 @@ class Parser
178178 // type Name `=' Type
179179 AstStat* parseTypeAlias (const Location& start, bool exported, Position typeKeywordPosition);
180180
181+ AstStat* parseClassStat (const Location& start, bool exported);
182+
181183 // type function Name ... end
182184 AstStat* parseTypeFunction (const Location& start, bool exported, Position typeKeywordPosition);
183185
@@ -514,6 +516,7 @@ class Parser
514516
515517 DenseHashMap<AstName, AstLocal*> localMap;
516518 std::vector<AstLocal*> localStack;
519+ DenseHashSet<AstName> classesWithinModule{{}};
517520
518521 std::vector<ParseError> parseErrors;
519522
@@ -534,6 +537,7 @@ class Parser
534537 std::vector<AstType*> scratchType;
535538 std::vector<AstTypeOrPack> scratchTypeOrPack;
536539 std::vector<AstDeclaredExternTypeProperty> scratchDeclaredClassProps;
540+ std::vector<AstClassMember> scratchClassDeclarations;
537541 std::vector<AstExprTable::Item> scratchItem;
538542 std::vector<CstExprTable::Item> scratchCstItem;
539543 std::vector<AstArgumentName> scratchArgName;
0 commit comments