Skip to content

Commit

Permalink
Reimplemented tokenstreams as ropes and reduced the exposed TokenStre…
Browse files Browse the repository at this point in the history
…am API.
  • Loading branch information
cgswords committed Aug 1, 2016
1 parent 5a7773a commit dc259de
Show file tree
Hide file tree
Showing 3 changed files with 374 additions and 610 deletions.
17 changes: 17 additions & 0 deletions src/libsyntax/codemap.rs
Expand Up @@ -71,6 +71,23 @@ pub fn dummy_spanned<T>(t: T) -> Spanned<T> {
respan(DUMMY_SP, t)
}

/// Build a span that covers the two provided spans.
pub fn combine_spans(sp1: Span, sp2: Span) -> Span {
if sp1 == DUMMY_SP && sp2 == DUMMY_SP {
DUMMY_SP
} else if sp1 == DUMMY_SP {
sp2
} else if sp2 == DUMMY_SP {
sp1
} else {
Span {
lo: if sp1.lo < sp2.lo { sp1.lo } else { sp2.lo },
hi: if sp1.hi > sp2.hi { sp1.hi } else { sp2.hi },
expn_id: if sp1.expn_id == sp2.expn_id { sp1.expn_id } else { NO_EXPANSION },
}
}
}

#[derive(Clone, Hash, Debug)]
pub struct NameAndSpan {
/// The format with which the macro was invoked.
Expand Down
2 changes: 1 addition & 1 deletion src/libsyntax/parse/mod.rs
Expand Up @@ -237,7 +237,7 @@ pub fn new_parser_from_ts<'a>(sess: &'a ParseSess,
cfg: ast::CrateConfig,
ts: tokenstream::TokenStream)
-> Parser<'a> {
tts_to_parser(sess, ts.tts, cfg)
tts_to_parser(sess, ts.to_tts(), cfg)
}


Expand Down

0 comments on commit dc259de

Please sign in to comment.