about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/lexer.rs7
-rw-r--r--src/libsyntax/parse/parser.rs7
2 files changed, 11 insertions, 3 deletions
diff --git a/src/libsyntax/parse/lexer.rs b/src/libsyntax/parse/lexer.rs
index 8db80cddded..1614a303d95 100644
--- a/src/libsyntax/parse/lexer.rs
+++ b/src/libsyntax/parse/lexer.rs
@@ -33,8 +33,11 @@ pub trait reader {
     fn dup(@mut self) -> @reader;
 }
 
-#[deriving(Eq)]
-pub struct TokenAndSpan {tok: token::Token, sp: span}
+#[deriving(Clone, Eq)]
+pub struct TokenAndSpan {
+    tok: token::Token,
+    sp: span,
+}
 
 pub struct StringReader {
     span_diagnostic: @span_handler,
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index adecbc050a3..324be2f978d 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -280,7 +280,12 @@ pub fn Parser(sess: @mut ParseSess,
         token: @mut tok0.tok,
         span: @mut span,
         last_span: @mut span,
-        buffer: @mut ([placeholder, .. 4]),
+        buffer: @mut ([
+            placeholder.clone(),
+            placeholder.clone(),
+            placeholder.clone(),
+            placeholder.clone(),
+        ]),
         buffer_start: @mut 0,
         buffer_end: @mut 0,
         tokens_consumed: @mut 0,