diff options
| author | Björn Steinbrink <bsteinbr@gmail.com> | 2013-06-08 02:26:52 +0200 |
|---|---|---|
| committer | Björn Steinbrink <bsteinbr@gmail.com> | 2013-06-08 03:24:47 +0200 |
| commit | de1df3608b5ece9e492cbda06c443249691b017a (patch) | |
| tree | 18c9b49bc66407b79cf4cbe76246970e073a7d00 /src/libsyntax/parse/comments.rs | |
| parent | 96798f5e050829b2fe4e43420c21ae3372f2b76a (diff) | |
| download | rust-de1df3608b5ece9e492cbda06c443249691b017a.tar.gz rust-de1df3608b5ece9e492cbda06c443249691b017a.zip | |
Lexer: Avoid unnecessary allocations
Diffstat (limited to 'src/libsyntax/parse/comments.rs')
| -rw-r--r-- | src/libsyntax/parse/comments.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/libsyntax/parse/comments.rs b/src/libsyntax/parse/comments.rs index 54fba29a19a..4921fb459bc 100644 --- a/src/libsyntax/parse/comments.rs +++ b/src/libsyntax/parse/comments.rs @@ -13,7 +13,7 @@ use core::prelude::*; use ast; use codemap::{BytePos, CharPos, CodeMap, Pos}; use diagnostic; -use parse::lexer::{is_whitespace, get_str_from, reader}; +use parse::lexer::{is_whitespace, with_str_from, reader}; use parse::lexer::{StringReader, bump, is_eof, nextch, TokenAndSpan}; use parse::lexer::{is_line_non_doc_comment, is_block_non_doc_comment}; use parse::lexer; @@ -352,9 +352,10 @@ pub fn gather_comments_and_literals(span_diagnostic: //discard, and look ahead; we're working with internal state let TokenAndSpan {tok: tok, sp: sp} = rdr.peek(); if token::is_lit(&tok) { - let s = get_str_from(rdr, bstart); - debug!("tok lit: %s", s); - literals.push(lit {lit: s, pos: sp.lo}); + do with_str_from(rdr, bstart) |s| { + debug!("tok lit: %s", s); + literals.push(lit {lit: s.to_owned(), pos: sp.lo}); + } } else { debug!("tok: %s", token::to_str(get_ident_interner(), &tok)); } |
