From 8a730a255ddce72a3d7f8437e78b4128ad30e8b3 Mon Sep 17 00:00:00 2001 From: Lindsey Kuper Date: Tue, 12 Jun 2012 12:05:23 -0700 Subject: [PATCH] Allow trailing comma in vectors. Closes #2482. --- src/libsyntax/parse/parser.rs | 2 +- src/test/compile-fail/empty-vec-trailing-comma.rs | 3 +++ src/test/run-pass/vec-trailing-comma.rs | 10 ++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 src/test/compile-fail/empty-vec-trailing-comma.rs create mode 100644 src/test/run-pass/vec-trailing-comma.rs diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 33233be3053..828cd5ce7d4 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -805,7 +805,7 @@ class parser { self.bump(); let mutbl = self.parse_mutability(); let es = self.parse_seq_to_end( - token::RBRACKET, seq_sep_trailing_disallowed(token::COMMA), + token::RBRACKET, seq_sep_trailing_allowed(token::COMMA), {|p| p.parse_expr()}); hi = self.span.hi; ex = expr_vec(es, mutbl); diff --git a/src/test/compile-fail/empty-vec-trailing-comma.rs b/src/test/compile-fail/empty-vec-trailing-comma.rs new file mode 100644 index 00000000000..e7bb6b704a1 --- /dev/null +++ b/src/test/compile-fail/empty-vec-trailing-comma.rs @@ -0,0 +1,3 @@ +fn main() { + let v = [,]; //! ERROR unexpected token: ',' +} diff --git a/src/test/run-pass/vec-trailing-comma.rs b/src/test/run-pass/vec-trailing-comma.rs new file mode 100644 index 00000000000..473ffe9f11d --- /dev/null +++ b/src/test/run-pass/vec-trailing-comma.rs @@ -0,0 +1,10 @@ +// Issue #2482. + +fn main() { + let v1: [int] = [10, 20, 30,]; + let v2: [int] = [10, 20, 30]; + assert (v1[2] == v2[2]); + let v3: [int] = [10,]; + let v4: [int] = [10]; + assert (v3[0] == v4[0]); +}