about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2014-06-13 14:42:03 +0000
committerbors <bors@rust-lang.org>2014-06-13 14:42:03 +0000
commit0422934e243ed57a7662ec878db9d4e01ca5b0f9 (patch)
tree5e7bcd1009b105bae30dac48beb5ffed9a53f256 /src/libsyntax/parse
parentc119903f621a11643d5f299423a2c72eefffec4c (diff)
parentcac7a2053aba7be214d5e58e13867089638a8f50 (diff)
downloadrust-0422934e243ed57a7662ec878db9d4e01ca5b0f9.tar.gz
rust-0422934e243ed57a7662ec878db9d4e01ca5b0f9.zip
auto merge of #14831 : alexcrichton/rust/format-intl, r=brson
* The select/plural methods from format strings are removed
* The # character no longer needs to be escaped
* The \-based escapes have been removed
* '{{' is now an escape for '{'
* '}}' is now an escape for '}'

Closes #14810
[breaking-change]
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/attr.rs7
-rw-r--r--src/libsyntax/parse/parser.rs38
2 files changed, 41 insertions, 4 deletions
diff --git a/src/libsyntax/parse/attr.rs b/src/libsyntax/parse/attr.rs
index 64766b5013c..112cdb26131 100644
--- a/src/libsyntax/parse/attr.rs
+++ b/src/libsyntax/parse/attr.rs
@@ -89,11 +89,18 @@ impl<'a> ParserAttr for Parser<'a> {
                 let hi = self.span.hi;
                 (mk_sp(lo, hi), meta_item, style)
             }
+            #[cfg(stage0)]
             _ => {
                 let token_str = self.this_token_to_str();
                 self.fatal(format!("expected `\\#` but found `{}`",
                                    token_str).as_slice());
             }
+            #[cfg(not(stage0))]
+            _ => {
+                let token_str = self.this_token_to_str();
+                self.fatal(format!("expected `#` but found `{}`",
+                                   token_str).as_slice());
+            }
         };
 
         if permit_inner && self.eat(&token::SEMI) {
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index 4d9b112cb5c..437b06e3df6 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -1208,11 +1208,18 @@ impl<'a> Parser<'a> {
                 })
               }
 
+              #[cfg(stage0)]
               _ => {
                   let token_str = p.this_token_to_str();
                   p.fatal((format!("expected `;` or `\\{` but found `{}`",
                                    token_str)).as_slice())
               }
+              #[cfg(not(stage0))]
+              _ => {
+                  let token_str = p.this_token_to_str();
+                  p.fatal((format!("expected `;` or `{{` but found `{}`",
+                                   token_str)).as_slice())
+              }
             }
         })
     }
@@ -2739,7 +2746,7 @@ impl<'a> Parser<'a> {
                 self.bump();
                 if self.token != token::RBRACE {
                     let token_str = self.this_token_to_str();
-                    self.fatal(format!("expected `\\}`, found `{}`",
+                    self.fatal(format!("expected `{}`, found `{}`", "}",
                                        token_str).as_slice())
                 }
                 etc = true;
@@ -3149,6 +3156,7 @@ impl<'a> Parser<'a> {
             // consuming more tokens).
             let (bra, ket) = match token::close_delimiter_for(&self.token) {
                 Some(ket) => (self.token.clone(), ket),
+                #[cfg(stage0)]
                 None      => {
                     // we only expect an ident if we didn't parse one
                     // above.
@@ -3162,6 +3170,20 @@ impl<'a> Parser<'a> {
                                        ident_str,
                                        tok_str).as_slice())
                 }
+                #[cfg(not(stage0))]
+                None      => {
+                    // we only expect an ident if we didn't parse one
+                    // above.
+                    let ident_str = if id == token::special_idents::invalid {
+                        "identifier, "
+                    } else {
+                        ""
+                    };
+                    let tok_str = self.this_token_to_str();
+                    self.fatal(format!("expected {}`(` or `{{`, but found `{}`",
+                                       ident_str,
+                                       tok_str).as_slice())
+                }
             };
 
             let tts = self.parse_unspanned_seq(
@@ -4041,8 +4063,8 @@ impl<'a> Parser<'a> {
             fields = Vec::new();
         } else {
             let token_str = self.this_token_to_str();
-            self.fatal(format!("expected `\\{`, `(`, or `;` after struct \
-                                name but found `{}`",
+            self.fatal(format!("expected `{}`, `(`, or `;` after struct \
+                                name but found `{}`", "{",
                                token_str).as_slice())
         }
 
@@ -4069,12 +4091,20 @@ impl<'a> Parser<'a> {
                 self.bump();
             }
             token::RBRACE => {}
+            #[cfg(stage0)]
             _ => {
                 let token_str = self.this_token_to_str();
                 self.span_fatal(self.span,
                                 format!("expected `,`, or `\\}` but found `{}`",
                                         token_str).as_slice())
             }
+            #[cfg(not(stage0))]
+            _ => {
+                let token_str = self.this_token_to_str();
+                self.span_fatal(self.span,
+                                format!("expected `,`, or `}}` but found `{}`",
+                                        token_str).as_slice())
+            }
         }
         a_var
     }
@@ -4684,7 +4714,7 @@ impl<'a> Parser<'a> {
 
             let token_str = self.this_token_to_str();
             self.span_fatal(self.span,
-                            format!("expected `\\{` or `fn` but found `{}`",
+                            format!("expected `{}` or `fn` but found `{}`", "{",
                                     token_str).as_slice());
         }