diff --git a/parser.go b/parser.go index b86904ae..00fca146 100644 --- a/parser.go +++ b/parser.go @@ -414,6 +414,7 @@ func (p *parser) parseValArray(b []byte) (ast.Reference, []byte, error) { var lastChild ast.Reference + var valueRef ast.Reference var err error for len(b) > 0 { b, err = p.parseOptionalWhitespaceCommentNewline(b) @@ -439,6 +440,8 @@ func (p *parser) parseValArray(b []byte) (ast.Reference, []byte, error) { if err != nil { return parent, nil, err } + } else { + valueRef = 0 } // TOML allows trailing commas in arrays. @@ -446,7 +449,9 @@ func (p *parser) parseValArray(b []byte) (ast.Reference, []byte, error) { break } - var valueRef ast.Reference + if !first && valueRef == 0 { + return parent, nil, newDecodeError(b[0:1], "array elements must be separated by commas") + } valueRef, b, err = p.parseVal(b) if err != nil {