diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2014-05-16 10:15:33 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-06-11 09:51:37 -0700 |
| commit | 54c2a1e1ce7f32576f0692a1de3fe2763d13bac9 (patch) | |
| tree | 62c34c3c945986ccb3e409df57ed0579a2ddcf9a /src/libsyntax/ext | |
| parent | 53ad426e92f8099a701f3f54c02dc8f069f5939a (diff) | |
| download | rust-54c2a1e1ce7f32576f0692a1de3fe2763d13bac9.tar.gz rust-54c2a1e1ce7f32576f0692a1de3fe2763d13bac9.zip | |
rustc: Move the AST from @T to Gc<T>
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/base.rs | 12 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 11 | ||||
| -rw-r--r-- | src/libsyntax/ext/quote.rs | 4 |
3 files changed, 14 insertions, 13 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index f9a9e276eb0..7ba517a3aed 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -113,7 +113,7 @@ pub trait MacResult { None } /// Create a pattern. - fn make_pat(&self) -> Option<@ast::Pat> { + fn make_pat(&self) -> Option<Gc<ast::Pat>> { None } @@ -143,15 +143,15 @@ impl MacResult for MacExpr { } /// A convenience type for macros that return a single pattern. pub struct MacPat { - p: @ast::Pat + p: Gc<ast::Pat>, } impl MacPat { - pub fn new(p: @ast::Pat) -> Box<MacResult> { + pub fn new(p: Gc<ast::Pat>) -> Box<MacResult> { box MacPat { p: p } as Box<MacResult> } } impl MacResult for MacPat { - fn make_pat(&self) -> Option<@ast::Pat> { + fn make_pat(&self) -> Option<Gc<ast::Pat>> { Some(self.p) } } @@ -212,8 +212,8 @@ impl DummyResult { } /// A plain dummy pattern. - pub fn raw_pat(sp: Span) -> @ast::Pat { - @ast::Pat { + pub fn raw_pat(sp: Span) -> Gc<ast::Pat> { + box(GC) ast::Pat { id: ast::DUMMY_NODE_ID, node: ast::PatWild, span: sp, diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 9efcb81e844..fffaa12fa1f 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -174,7 +174,7 @@ pub fn expand_expr(e: Gc<ast::Expr>, fld: &mut MacroExpander) -> Gc<ast::Expr> { let value_ident = token::gensym_ident("__value"); // this is careful to use src_pat.span so that error // messages point exact at that. - let local = @ast::Local { + let local = box(GC) ast::Local { ty: fld.cx.ty_infer(src_pat.span), pat: src_pat, init: Some(fld.cx.expr_ident(src_pat.span, value_ident)), @@ -183,7 +183,8 @@ pub fn expand_expr(e: Gc<ast::Expr>, fld: &mut MacroExpander) -> Gc<ast::Expr> { source: ast::LocalFor }; let local = codemap::respan(src_pat.span, ast::DeclLocal(local)); - let local = @codemap::respan(span, ast::StmtDecl(@local, ast::DUMMY_NODE_ID)); + let local = box(GC) codemap::respan(span, ast::StmtDecl(box(GC) local, + ast::DUMMY_NODE_ID)); // { let ...; <src_loop_block> } let block = fld.cx.block(span, vec![local], @@ -749,7 +750,7 @@ pub fn expand_block_elts(b: &Block, fld: &mut MacroExpander) -> P<Block> { }) } -pub fn expand_pat(p: @ast::Pat, fld: &mut MacroExpander) -> @ast::Pat { +pub fn expand_pat(p: Gc<ast::Pat>, fld: &mut MacroExpander) -> Gc<ast::Pat> { let (pth, tts) = match p.node { PatMac(ref mac) => { match mac.node { @@ -819,7 +820,7 @@ pub fn expand_pat(p: @ast::Pat, fld: &mut MacroExpander) -> @ast::Pat { fld.fold_pat(marked_after).node.clone(); fld.cx.bt_pop(); - @ast::Pat { + box(GC) ast::Pat { id: ast::DUMMY_NODE_ID, node: fully_expanded, span: p.span, @@ -983,7 +984,7 @@ fn mark_expr(expr: Gc<ast::Expr>, m: Mrk) -> Gc<ast::Expr> { } // apply a given mark to the given pattern. Used following the expansion of a macro. -fn mark_pat(pat: @ast::Pat, m: Mrk) -> @ast::Pat { +fn mark_pat(pat: Gc<ast::Pat>, m: Mrk) -> Gc<ast::Pat> { new_mark_folder(m).fold_pat(pat) } diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs index 5906f480d42..185924f704c 100644 --- a/src/libsyntax/ext/quote.rs +++ b/src/libsyntax/ext/quote.rs @@ -90,7 +90,7 @@ pub mod rt { impl ToSource for Gc<ast::Item> { fn to_source(&self) -> String { - pprust::item_to_str(*self) + pprust::item_to_str(&**self) } } @@ -128,7 +128,7 @@ pub mod rt { impl ToSource for Gc<ast::Expr> { fn to_source(&self) -> String { - pprust::expr_to_str(*self) + pprust::expr_to_str(&**self) } } |
