Harden tests for bad arrays
diff --git a/parser.go b/parser.go index 7ba872b..bd33e0d 100644 --- a/parser.go +++ b/parser.go
@@ -264,7 +264,7 @@ } if follow.typ == tokenRightBracket { p.getToken() - return array + break } val := p.parseRvalue() if arrayType == nil { @@ -275,7 +275,7 @@ } array = append(array, val) follow = p.peek() - if follow == nil { + if follow == nil || follow.typ == tokenEOF { p.raiseError(follow, "unterminated array") } if follow.typ != tokenRightBracket && follow.typ != tokenComma {
diff --git a/parser_test.go b/parser_test.go index 94308a4..9b827b1 100644 --- a/parser_test.go +++ b/parser_test.go
@@ -297,6 +297,16 @@ if err.Error() != "(1, 8): unterminated array" { t.Error("Bad error message:", err.Error()) } + + _, err = Load("a = [1") + if err.Error() != "(1, 7): unterminated array" { + t.Error("Bad error message:", err.Error()) + } + + _, err = Load("a = [1 2") + if err.Error() != "(1, 8): missing comma" { + t.Error("Bad error message:", err.Error()) + } } func TestNewlinesInArrays(t *testing.T) {