Function outputs list can be empty
This commit is contained in:
parent
a53a02fe0b
commit
1bd8c0bb05
@ -478,5 +478,18 @@ namespace Parser.Tests
|
|||||||
Assert.IsInstanceOf<FunctionCallExpressionNode>(e.BaseClassNameAndArguments);
|
Assert.IsInstanceOf<FunctionCallExpressionNode>(e.BaseClassNameAndArguments);
|
||||||
Assert.AreEqual(text, actual.FullText);
|
Assert.AreEqual(text, actual.FullText);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void ParseFunctionWithEmptyOutputsList()
|
||||||
|
{
|
||||||
|
var text = "function [] = a(b) end";
|
||||||
|
var sut = CreateParser(text);
|
||||||
|
var actual = sut.ParseStatement();
|
||||||
|
Assert.IsInstanceOf<FunctionDeclarationNode>(actual);
|
||||||
|
var f = (FunctionDeclarationNode) actual;
|
||||||
|
Assert.AreEqual(0, f.OutputDescription.Outputs.Count);
|
||||||
|
Assert.AreEqual(text, actual.FullText);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -128,10 +128,9 @@ namespace Parser
|
|||||||
private List<SyntaxNode> ParseFunctionOutputList()
|
private List<SyntaxNode> ParseFunctionOutputList()
|
||||||
{
|
{
|
||||||
var outputs = new List<Token>();
|
var outputs = new List<Token>();
|
||||||
outputs.Add(EatToken(TokenKind.Identifier));
|
|
||||||
while (CurrentToken.Kind != TokenKind.ClosingSquareBracket)
|
while (CurrentToken.Kind != TokenKind.ClosingSquareBracket)
|
||||||
{
|
{
|
||||||
if (CurrentToken.Kind == TokenKind.Comma)
|
if (outputs.Count > 0 && CurrentToken.Kind == TokenKind.Comma)
|
||||||
{
|
{
|
||||||
outputs.Add(EatToken());
|
outputs.Add(EatToken());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user