Skip to content

Commit 7875267

Browse files
Merge pull request #148 from toxamin/main
Fix parsing empty return at end of file
2 parents 4bb6e5a + e73a762 commit 7875267

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

src/Compilers/Lua/Portable/Parser/LanguageParser.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,8 @@ private ReturnStatementSyntax ParseReturnStatement()
630630
{
631631
var returnKeyword = EatToken(SyntaxKind.ReturnKeyword);
632632
SeparatedSyntaxList<ExpressionSyntax> expressions = default;
633-
if (CurrentToken.Kind is not (SyntaxKind.ElseKeyword or SyntaxKind.ElseIfKeyword or SyntaxKind.EndKeyword or SyntaxKind.UntilKeyword or SyntaxKind.SemicolonToken))
633+
if (CurrentToken.Kind is not (SyntaxKind.ElseKeyword or SyntaxKind.ElseIfKeyword or SyntaxKind.EndKeyword
634+
or SyntaxKind.UntilKeyword or SyntaxKind.SemicolonToken or SyntaxKind.EndOfFileToken))
634635
{
635636
var expressionsAndSeparatorsBuilder =
636637
_pool.AllocateSeparated<ExpressionSyntax>();

src/Compilers/Lua/Test/Portable/Parsing/RegressionTests.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,4 +258,8 @@ public async Task LanguageParser_DoesNotFindGotosNorGotoLabelsWhenAcceptGotoIsNo
258258
// (1,21): error LUA1003: ) expected
259259
// ::label:: goto label
260260
Diagnostic(ErrorCode.ERR_CloseParenExpected, "").WithLocation(1, 21));
261+
262+
[Test, WorkItem(147, "https://github.com/LorettaDevs/Loretta/issues/147")]
263+
public async Task LanguageParser_WhenParsingEmptyReturnAtEndOfFile_DoNotGenerateErrors()
264+
=> await ParseAndValidateAsync("return", LuaSyntaxOptions.Lua51);
261265
}

0 commit comments

Comments
 (0)