diff options
| author | bors <bors@rust-lang.org> | 2014-05-08 09:06:42 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-05-08 09:06:42 -0700 |
| commit | aa6725407ae0a2cb88458e147e76adf8bcae0961 (patch) | |
| tree | c09983e00886791c40b9304d99dd8d05e2d613c2 /src/libsyntax/parse/parser.rs | |
| parent | e45485181338137136ea2816d78ed108440f7d50 (diff) | |
| parent | 7f8f3dcf179d7b771f8e9c588ab081ab5eb9c394 (diff) | |
| download | rust-aa6725407ae0a2cb88458e147e76adf8bcae0961.tar.gz rust-aa6725407ae0a2cb88458e147e76adf8bcae0961.zip | |
auto merge of #14032 : pcwalton/rust/detildestr, r=alexcrichton
r? @brson
Diffstat (limited to 'src/libsyntax/parse/parser.rs')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 38f3841f15a..8f3b77dd58c 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -345,12 +345,12 @@ fn is_plain_ident_or_underscore(t: &token::Token) -> bool { impl<'a> Parser<'a> { // convert a token to a string using self's reader - pub fn token_to_str(token: &token::Token) -> ~str { + pub fn token_to_str(token: &token::Token) -> StrBuf { token::to_str(token) } // convert the current token to a string using self's reader - pub fn this_token_to_str(&mut self) -> ~str { + pub fn this_token_to_str(&mut self) -> StrBuf { Parser::token_to_str(&self.token) } @@ -385,11 +385,17 @@ impl<'a> Parser<'a> { pub fn expect_one_of(&mut self, edible: &[token::Token], inedible: &[token::Token]) { - fn tokens_to_str(tokens: &[token::Token]) -> ~str { + fn tokens_to_str(tokens: &[token::Token]) -> StrBuf { let mut i = tokens.iter(); // This might be a sign we need a connect method on Iterator. - let b = i.next().map_or("".to_owned(), |t| Parser::token_to_str(t)); - i.fold(b, |b,a| b + "`, `" + Parser::token_to_str(a)) + let b = i.next() + .map_or("".to_strbuf(), |t| Parser::token_to_str(t)); + i.fold(b, |b,a| { + let mut b = b; + b.push_str("`, `"); + b.push_str(Parser::token_to_str(a).as_slice()); + b + }) } if edible.contains(&self.token) { self.bump(); @@ -3898,7 +3904,7 @@ impl<'a> Parser<'a> { (ident, ItemImpl(generics, opt_trait, ty, meths), Some(inner_attrs)) } - // parse a::B<~str,int> + // parse a::B<StrBuf,int> fn parse_trait_ref(&mut self) -> TraitRef { ast::TraitRef { path: self.parse_path(LifetimeAndTypesWithoutColons).path, @@ -3906,7 +3912,7 @@ impl<'a> Parser<'a> { } } - // parse B + C<~str,int> + D + // parse B + C<StrBuf,int> + D fn parse_trait_ref_list(&mut self, ket: &token::Token) -> Vec<TraitRef> { self.parse_seq_to_before_end( ket, |
