Skip to content

Commit b7702d5

Browse files
pcwaltonhuonw
authored andcommitted
---
yaml --- r: 107872 b: refs/heads/dist-snap c: 875c9ce h: refs/heads/master v: v3
1 parent 5623e1d commit b7702d5

File tree

6 files changed

+50
-28
lines changed

6 files changed

+50
-28
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ refs/heads/try: f64fdf524a434f0e5cd0bc91d09c144723f3c90d
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9-
refs/heads/dist-snap: e534b565e6f101f6ec544f821dec116fed286f3b
9+
refs/heads/dist-snap: 875c9ce30b13de02e447ee95cb50b0111894b14a
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1212
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0

branches/dist-snap/src/libsyntax/ext/expand.rs

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ use codemap::{Span, Spanned, ExpnInfo, NameAndSpan, MacroBang, MacroAttribute};
2222
use ext::base::*;
2323
use fold::*;
2424
use parse;
25+
use parse::token::{fresh_mark, fresh_name, intern};
2526
use parse::token;
26-
use parse::token::{fresh_mark, fresh_name, ident_to_str, intern};
2727
use visit;
2828
use visit::Visitor;
2929
use util::small_vector::SmallVector;
@@ -310,11 +310,12 @@ pub fn expand_item_mac(it: @ast::Item, fld: &mut MacroExpander)
310310

311311
Some(&NormalTT(ref expander, span)) => {
312312
if it.ident.name != parse::token::special_idents::invalid.name {
313+
let string = token::get_ident(it.ident.name);
313314
fld.cx.span_err(pth.span,
314315
format!("macro {}! expects no ident argument, \
315316
given '{}'",
316317
extnamestr.get(),
317-
ident_to_str(&it.ident)));
318+
string.get()));
318319
return SmallVector::zero();
319320
}
320321
fld.cx.bt_push(ExpnInfo {
@@ -411,7 +412,10 @@ fn load_extern_macros(crate: &ast::ViewItem, fld: &mut MacroExpander) {
411412
let MacroCrate { lib, cnum } = fld.cx.loader.load_crate(crate);
412413

413414
let crate_name = match crate.node {
414-
ast::ViewItemExternMod(ref name, _, _) => token::ident_to_str(name),
415+
ast::ViewItemExternMod(ref name, _, _) => {
416+
let string = token::get_ident(name.name);
417+
string.get().to_str()
418+
},
415419
_ => unreachable!(),
416420
};
417421
let name = format!("<{} macros>", crate_name);
@@ -957,7 +961,7 @@ mod test {
957961
use fold::*;
958962
use ext::base::{CrateLoader, MacroCrate};
959963
use parse;
960-
use parse::token::{fresh_mark, gensym, intern, ident_to_str};
964+
use parse::token::{fresh_mark, gensym, intern};
961965
use parse::token;
962966
use util::parser_testing::{string_to_crate, string_to_crate_and_sess};
963967
use util::parser_testing::{string_to_pat, string_to_tts, strs_to_idents};
@@ -1272,9 +1276,12 @@ mod test {
12721276
println!("uh oh, matches but shouldn't:");
12731277
println!("varref: {:?}",varref);
12741278
// good lord, you can't make a path with 0 segments, can you?
1279+
let string = token::get_ident(varref.segments[0]
1280+
.identifier
1281+
.name);
12751282
println!("varref's first segment's uint: {}, and string: \"{}\"",
12761283
varref.segments[0].identifier.name,
1277-
ident_to_str(&varref.segments[0].identifier));
1284+
string.get());
12781285
println!("binding: {:?}", bindings[binding_idx]);
12791286
ast_util::display_sctable(get_sctable());
12801287
}
@@ -1296,7 +1303,10 @@ foo_module!()
12961303
let bindings = name_finder.ident_accumulator;
12971304
12981305
let cxbinds : ~[&ast::Ident] =
1299-
bindings.iter().filter(|b|{@"xx" == (ident_to_str(*b))}).collect();
1306+
bindings.iter().filter(|b| {
1307+
let string = token::get_ident(b);
1308+
"xx" == string.get()
1309+
}).collect();
13001310
let cxbind = match cxbinds {
13011311
[b] => b,
13021312
_ => fail!("expected just one binding for ext_cx")
@@ -1308,9 +1318,13 @@ foo_module!()
13081318
let varrefs = path_finder.path_accumulator;
13091319

13101320
// the xx binding should bind all of the xx varrefs:
1311-
for (idx,v) in varrefs.iter().filter(|p|{ p.segments.len() == 1
1312-
&& (@"xx" == (ident_to_str(&p.segments[0].identifier)))
1313-
}).enumerate() {
1321+
for (idx,v) in varrefs.iter().filter(|p|{
1322+
p.segments.len() == 1
1323+
&& {
1324+
let string = token::get_ident(p.segments[0].identifier.name);
1325+
"xx" == string.get()
1326+
}
1327+
}).enumerate() {
13141328
if (mtwt_resolve(v.segments[0].identifier) != resolved_binding) {
13151329
println!("uh oh, xx binding didn't match xx varref:");
13161330
println!("this is xx varref \\# {:?}",idx);

branches/dist-snap/src/libsyntax/ext/tt/macro_parser.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use parse::lexer::*; //resolve bug?
1818
use parse::ParseSess;
1919
use parse::attr::ParserAttr;
2020
use parse::parser::{LifetimeAndTypesWithoutColons, Parser};
21-
use parse::token::{Token, EOF, to_str, Nonterminal, get_ident_interner, ident_to_str};
21+
use parse::token::{Token, EOF, to_str, Nonterminal, get_ident_interner};
2222
use parse::token;
2323

2424
use std::hashmap::HashMap;
@@ -183,8 +183,9 @@ pub fn nameize(p_s: @ParseSess, ms: &[Matcher], res: &[@NamedMatch])
183183
node: MatchNonterminal(ref bind_name, _, idx), span: sp
184184
} => {
185185
if ret_val.contains_key(bind_name) {
186-
p_s.span_diagnostic.span_fatal(sp,
187-
"Duplicated bind name: "+ ident_to_str(bind_name))
186+
let string = token::get_ident(bind_name.name);
187+
p_s.span_diagnostic
188+
.span_fatal(sp, "Duplicated bind name: " + string.get())
188189
}
189190
ret_val.insert(*bind_name, res[idx]);
190191
}
@@ -364,8 +365,11 @@ pub fn parse(sess: @ParseSess,
364365
let nts = bb_eis.map(|ei| {
365366
match ei.elts[ei.idx].node {
366367
MatchNonterminal(ref bind,ref name,_) => {
367-
format!("{} ('{}')", ident_to_str(name),
368-
ident_to_str(bind))
368+
let bind_string = token::get_ident(bind.name);
369+
let name_string = token::get_ident(name.name);
370+
format!("{} ('{}')",
371+
name_string.get(),
372+
bind_string.get())
369373
}
370374
_ => fail!()
371375
} }).connect(" or ");
@@ -388,8 +392,9 @@ pub fn parse(sess: @ParseSess,
388392
let mut ei = bb_eis.pop().unwrap();
389393
match ei.elts[ei.idx].node {
390394
MatchNonterminal(_, ref name, idx) => {
395+
let name_string = token::get_ident(name.name);
391396
ei.matches[idx].push(@MatchedNonterminal(
392-
parse_nt(&mut rust_parser, ident_to_str(name))));
397+
parse_nt(&mut rust_parser, name_string.get())));
393398
ei.idx += 1u;
394399
}
395400
_ => fail!()

branches/dist-snap/src/libsyntax/ext/tt/transcribe.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use codemap::{Span, DUMMY_SP};
1414
use diagnostic::SpanHandler;
1515
use ext::tt::macro_parser::{NamedMatch, MatchedSeq, MatchedNonterminal};
1616
use parse::token::{EOF, INTERPOLATED, IDENT, Token, NtIdent};
17-
use parse::token::{ident_to_str};
17+
use parse::token;
1818
use parse::lexer::TokenAndSpan;
1919

2020
use std::cell::{Cell, RefCell};
@@ -122,9 +122,10 @@ fn lookup_cur_matched(r: &TtReader, name: Ident) -> @NamedMatch {
122122
match matched_opt {
123123
Some(s) => lookup_cur_matched_by_matched(r, s),
124124
None => {
125+
let name_string = token::get_ident(name.name);
125126
r.sp_diag.span_fatal(r.cur_span.get(),
126127
format!("unknown macro variable `{}`",
127-
ident_to_str(&name)));
128+
name_string.get()));
128129
}
129130
}
130131
}
@@ -145,11 +146,11 @@ fn lis_merge(lhs: LockstepIterSize, rhs: LockstepIterSize) -> LockstepIterSize {
145146
LisContradiction(_) => rhs.clone(),
146147
LisConstraint(r_len, _) if l_len == r_len => lhs.clone(),
147148
LisConstraint(r_len, ref r_id) => {
148-
let l_n = ident_to_str(l_id);
149-
let r_n = ident_to_str(r_id);
149+
let l_n = token::get_ident(l_id.name);
150+
let r_n = token::get_ident(r_id.name);
150151
LisContradiction(format!("Inconsistent lockstep iteration: \
151152
'{}' has {} items, but '{}' has {}",
152-
l_n, l_len, r_n, r_len))
153+
l_n.get(), l_len, r_n.get(), r_len))
153154
}
154155
}
155156
}
@@ -313,10 +314,11 @@ pub fn tt_next_token(r: &TtReader) -> TokenAndSpan {
313314
return ret_val;
314315
}
315316
MatchedSeq(..) => {
317+
let string = token::get_ident(ident.name);
316318
r.sp_diag.span_fatal(
317319
r.cur_span.get(), /* blame the macro writer */
318320
format!("variable '{}' is still repeating at this depth",
319-
ident_to_str(&ident)));
321+
string.get()));
320322
}
321323
}
322324
}

branches/dist-snap/src/libsyntax/parse/parser.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,8 @@ use parse::lexer::Reader;
7272
use parse::lexer::TokenAndSpan;
7373
use parse::obsolete::*;
7474
use parse::token::{INTERPOLATED, InternedString, can_begin_expr, get_ident};
75-
use parse::token::{get_ident_interner, ident_to_str, is_ident};
76-
use parse::token::{is_ident_or_path, is_plain_ident, keywords};
77-
use parse::token::{special_idents, token_to_binop};
75+
use parse::token::{get_ident_interner, is_ident, is_ident_or_path};
76+
use parse::token::{is_plain_ident, keywords, special_idents, token_to_binop};
7877
use parse::token;
7978
use parse::{new_sub_parser_from_file, ParseSess};
8079
use opt_vec;
@@ -4534,7 +4533,8 @@ impl Parser {
45344533
token::LIT_STR(s)
45354534
| token::LIT_STR_RAW(s, _) => {
45364535
self.bump();
4537-
let the_string = ident_to_str(&s);
4536+
let identifier_string = token::get_ident(s.name);
4537+
let the_string = identifier_string.get();
45384538
let mut abis = AbiSet::empty();
45394539
for word in the_string.words() {
45404540
match abi::lookup(word) {

branches/dist-snap/src/libsyntax/print/pprust.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use codemap::{CodeMap, BytePos};
1919
use codemap;
2020
use diagnostic;
2121
use parse::classify::expr_is_simple_block;
22-
use parse::token::{IdentInterner, ident_to_str, interner_get};
22+
use parse::token::{IdentInterner, interner_get};
2323
use parse::{comments, token};
2424
use parse;
2525
use print::pp::{break_offset, word, space, zerobreak, hardbreak};
@@ -1539,7 +1539,8 @@ pub fn print_decl(s: &mut State, decl: &ast::Decl) {
15391539
}
15401540

15411541
pub fn print_ident(s: &mut State, ident: ast::Ident) {
1542-
word(&mut s.s, ident_to_str(&ident));
1542+
let string = token::get_ident(ident.name);
1543+
word(&mut s.s, string.get());
15431544
}
15441545

15451546
pub fn print_name(s: &mut State, name: ast::Name) {

0 commit comments

Comments
 (0)