Skip to content

Commit 72ee6af

Browse files
committed
compare macro tokens hygienically (commented out)
1 parent 9ec1623 commit 72ee6af

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

src/libsyntax/ext/tt/macro_parser.rs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,19 @@ pub fn parse_or_else(
234234
}
235235
}
236236
237+
// temporary for testing
238+
pub fn token_name_eq(t1 : &Token, t2 : &Token) -> bool {
239+
if (*t1 == *t2) {
240+
true
241+
} else {
242+
match (t1,t2) {
243+
(&token::IDENT(id1,_),&token::IDENT(id2,_)) =>
244+
id1.name == id2.name,
245+
_ => false
246+
}
247+
}
248+
}
249+
237250
pub fn parse(
238251
sess: @mut ParseSess,
239252
cfg: ast::CrateConfig,
@@ -343,7 +356,8 @@ pub fn parse(
343356
match_nonterminal(_,_,_) => { bb_eis.push(ei) }
344357
match_tok(ref t) => {
345358
let mut ei_t = ei.clone();
346-
if (*t) == tok {
359+
if (token_name_eq(t,&tok)) {
360+
//if (token::mtwt_token_eq(t,&tok)) {
347361
ei_t.idx += 1;
348362
next_eis.push(ei_t);
349363
}

src/libsyntax/parse/parser.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3518,7 +3518,10 @@ impl Parser {
35183518
}
35193519

35203520
fn is_self_ident(&self) -> bool {
3521-
*self.token == token::IDENT(special_idents::self_, false)
3521+
match *self.token {
3522+
token::IDENT(id, false) => id.name == special_idents::self_.name,
3523+
_ => false
3524+
}
35223525
}
35233526

35243527
fn expect_self_ident(&self) {

0 commit comments

Comments
 (0)