Skip to content

Commit e3b5300

Browse files
committed
---
yaml --- r: 208554 b: refs/heads/snap-stage3 c: 7b00658 h: refs/heads/master v: v3
1 parent bf56ffd commit e3b5300

File tree

6 files changed

+39
-14
lines changed

6 files changed

+39
-14
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 38a97becdf3e6a6157f6f7ec2d98ade8d8edc193
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: eef6b4a37b9b7a1753bb91016c36435ad66309dc
4+
refs/heads/snap-stage3: 7b00658413db724525db72364b7f77b65ef6af1d
55
refs/heads/try: 7b4ef47b7805a402d756fb8157101f64880a522f
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d

branches/snap-stage3/src/libsyntax/ext/quote.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,18 @@ pub mod rt {
9494
}
9595
}
9696

97+
impl ToTokens for ast::Generics {
98+
fn to_tokens(&self, _cx: &ExtCtxt) -> Vec<TokenTree> {
99+
vec![ast::TtToken(DUMMY_SP, token::Interpolated(token::NtGenerics(self.clone())))]
100+
}
101+
}
102+
103+
impl ToTokens for ast::WhereClause {
104+
fn to_tokens(&self, _cx: &ExtCtxt) -> Vec<TokenTree> {
105+
vec![ast::TtToken(DUMMY_SP, token::Interpolated(token::NtWhereClause(self.clone())))]
106+
}
107+
}
108+
97109
impl ToTokens for P<ast::Item> {
98110
fn to_tokens(&self, _cx: &ExtCtxt) -> Vec<TokenTree> {
99111
vec![ast::TtToken(self.span, token::Interpolated(token::NtItem(self.clone())))]

branches/snap-stage3/src/libsyntax/fold.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -689,6 +689,9 @@ pub fn noop_fold_interpolated<T: Folder>(nt: token::Nonterminal, fld: &mut T)
689689
token::NtTraitItem(arm) =>
690690
token::NtTraitItem(fld.fold_trait_item(arm)
691691
.expect_one("expected fold to produce exactly one item")),
692+
token::NtGenerics(generics) => token::NtGenerics(fld.fold_generics(generics)),
693+
token::NtWhereClause(where_clause) =>
694+
token::NtWhereClause(fld.fold_where_clause(where_clause)),
692695
}
693696
}
694697

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3808,6 +3808,8 @@ impl<'a> Parser<'a> {
38083808
/// | ( < lifetimes , typaramseq ( , )? > )
38093809
/// where typaramseq = ( typaram ) | ( typaram , typaramseq )
38103810
pub fn parse_generics(&mut self) -> PResult<ast::Generics> {
3811+
maybe_whole!(self, NtGenerics);
3812+
38113813
if try!(self.eat(&token::Lt) ){
38123814
let lifetime_defs = try!(self.parse_lifetime_defs());
38133815
let mut seen_default = false;
@@ -3928,6 +3930,8 @@ impl<'a> Parser<'a> {
39283930
/// where T : Trait<U, V> + 'b, 'a : 'b
39293931
/// ```
39303932
pub fn parse_where_clause(&mut self) -> PResult<ast::WhereClause> {
3933+
maybe_whole!(self, NtWhereClause);
3934+
39313935
let mut where_clause = WhereClause {
39323936
id: ast::DUMMY_NODE_ID,
39333937
predicates: Vec::new(),

branches/snap-stage3/src/libsyntax/parse/token.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,6 +385,8 @@ pub enum Nonterminal {
385385
NtArm(ast::Arm),
386386
NtImplItem(P<ast::ImplItem>),
387387
NtTraitItem(P<ast::TraitItem>),
388+
NtGenerics(ast::Generics),
389+
NtWhereClause(ast::WhereClause),
388390
}
389391

390392
impl fmt::Debug for Nonterminal {
@@ -403,6 +405,8 @@ impl fmt::Debug for Nonterminal {
403405
NtArm(..) => f.pad("NtArm(..)"),
404406
NtImplItem(..) => f.pad("NtImplItem(..)"),
405407
NtTraitItem(..) => f.pad("NtTraitItem(..)"),
408+
NtGenerics(..) => f.pad("NtGenerics(..)"),
409+
NtWhereClause(..) => f.pad("NtWhereClause(..)"),
406410
}
407411
}
408412
}

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

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -287,19 +287,21 @@ pub fn token_to_string(tok: &Token) -> String {
287287
token::SpecialVarNt(var) => format!("${}", var.as_str()),
288288

289289
token::Interpolated(ref nt) => match *nt {
290-
token::NtExpr(ref e) => expr_to_string(&**e),
291-
token::NtMeta(ref e) => meta_item_to_string(&**e),
292-
token::NtTy(ref e) => ty_to_string(&**e),
293-
token::NtPath(ref e) => path_to_string(&**e),
294-
token::NtItem(ref e) => item_to_string(&**e),
295-
token::NtBlock(ref e) => block_to_string(&**e),
296-
token::NtStmt(ref e) => stmt_to_string(&**e),
297-
token::NtPat(ref e) => pat_to_string(&**e),
298-
token::NtIdent(ref e) => ident_to_string(&**e),
299-
token::NtTT(ref e) => tt_to_string(&**e),
300-
token::NtArm(ref e) => arm_to_string(&**e),
301-
token::NtImplItem(ref e) => impl_item_to_string(&**e),
302-
token::NtTraitItem(ref e) => trait_item_to_string(&**e),
290+
token::NtExpr(ref e) => expr_to_string(&**e),
291+
token::NtMeta(ref e) => meta_item_to_string(&**e),
292+
token::NtTy(ref e) => ty_to_string(&**e),
293+
token::NtPath(ref e) => path_to_string(&**e),
294+
token::NtItem(ref e) => item_to_string(&**e),
295+
token::NtBlock(ref e) => block_to_string(&**e),
296+
token::NtStmt(ref e) => stmt_to_string(&**e),
297+
token::NtPat(ref e) => pat_to_string(&**e),
298+
token::NtIdent(ref e, _) => ident_to_string(&**e),
299+
token::NtTT(ref e) => tt_to_string(&**e),
300+
token::NtArm(ref e) => arm_to_string(&*e),
301+
token::NtImplItem(ref e) => impl_item_to_string(&**e),
302+
token::NtTraitItem(ref e) => trait_item_to_string(&**e),
303+
token::NtGenerics(ref e) => generics_to_string(&*e),
304+
token::NtWhereClause(ref e) => where_clause_to_string(&*e),
303305
}
304306
}
305307
}

0 commit comments

Comments
 (0)