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 | |
| 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')
| -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 | ||||
| -rw-r--r-- | src/libsyntax/fold.rs | 6 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 28 |
7 files changed, 34 insertions, 33 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) } } diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index c20d1b70996..d8c7ffe4db7 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -187,8 +187,8 @@ pub trait Folder { }) } TyUnboxedFn(ref f) => { - TyUnboxedFn(@UnboxedFnTy { - decl: self.fold_fn_decl(f.decl), + TyUnboxedFn(box(GC) UnboxedFnTy { + decl: self.fold_fn_decl(&*f.decl), }) } TyTup(ref tys) => TyTup(tys.iter().map(|&ty| self.fold_ty(ty)).collect()), @@ -449,7 +449,7 @@ fn fold_ty_param_bound<T: Folder>(tpb: &TyParamBound, fld: &mut T) StaticRegionTyParamBound => StaticRegionTyParamBound, UnboxedFnTyParamBound(ref unboxed_function_type) => { UnboxedFnTyParamBound(UnboxedFnTy { - decl: fld.fold_fn_decl(unboxed_function_type.decl), + decl: fld.fold_fn_decl(&*unboxed_function_type.decl), }) } OtherRegionTyParamBound(s) => OtherRegionTyParamBound(s) diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index fad75ef9278..8083bf41706 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -277,8 +277,8 @@ fn maybe_append(lhs: Vec<Attribute> , rhs: Option<Vec<Attribute> >) struct ParsedItemsAndViewItems { attrs_remaining: Vec<Attribute>, view_items: Vec<ViewItem>, - items: Vec<@Item>, - foreign_items: Vec<@ForeignItem> + items: Vec<Gc<Item>>, + foreign_items: Vec<Gc<ForeignItem>> } /* ident is handled by common.rs */ diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 82d74ff07f3..33b7086d7ae 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1968,7 +1968,7 @@ impl<'a> State<'a> { &None, ast::NormalFn, ast::Many, - unboxed_function_type.decl, + &*unboxed_function_type.decl, None, &None, None, diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 40f237d3267..59771a57dfa 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -220,9 +220,9 @@ pub fn walk_trait_ref_helper<E: Clone, V: Visitor<E>>(visitor: &mut V, pub fn walk_item<E: Clone, V: Visitor<E>>(visitor: &mut V, item: &Item, env: E) { visitor.visit_ident(item.span, item.ident, env.clone()); match item.node { - ItemStatic(typ, _, expr) => { - visitor.visit_ty(&*typ, env.clone()); - visitor.visit_expr(&*expr, env); + ItemStatic(ref typ, _, ref expr) => { + visitor.visit_ty(&**typ, env.clone()); + visitor.visit_expr(&**expr, env.clone()); } ItemFn(declaration, fn_style, abi, ref generics, body) => { visitor.visit_fn(&FkItemFn(item.ident, generics, fn_style, abi), @@ -243,9 +243,9 @@ pub fn walk_item<E: Clone, V: Visitor<E>>(visitor: &mut V, item: &Item, env: E) visitor.visit_foreign_item(&**foreign_item, env.clone()) } } - ItemTy(typ, ref type_parameters) => { - visitor.visit_ty(&*typ, env.clone()); - visitor.visit_generics(type_parameters, env) + ItemTy(ref typ, ref type_parameters) => { + visitor.visit_ty(&**typ, env.clone()); + visitor.visit_generics(type_parameters, env.clone()) } ItemEnum(ref enum_definition, ref type_parameters) => { visitor.visit_generics(type_parameters, env.clone()); @@ -387,9 +387,9 @@ pub fn walk_ty<E: Clone, V: Visitor<E>>(visitor: &mut V, typ: &Ty, env: E) { } TyUnboxedFn(ref function_declaration) => { for argument in function_declaration.decl.inputs.iter() { - visitor.visit_ty(argument.ty, env.clone()) + visitor.visit_ty(&*argument.ty, env.clone()) } - visitor.visit_ty(function_declaration.decl.output, env.clone()); + visitor.visit_ty(&*function_declaration.decl.output, env.clone()); } TyPath(ref path, ref bounds, id) => { visitor.visit_path(path, id, env.clone()); @@ -492,7 +492,7 @@ pub fn walk_foreign_item<E: Clone, V: Visitor<E>>(visitor: &mut V, walk_fn_decl(visitor, &**function_declaration, env.clone()); visitor.visit_generics(generics, env.clone()) } - ForeignItemStatic(typ, _) => visitor.visit_ty(typ, env.clone()), + ForeignItemStatic(ref typ, _) => visitor.visit_ty(&**typ, env.clone()), } for attr in foreign_item.attrs.iter() { @@ -511,9 +511,9 @@ pub fn walk_ty_param_bounds<E: Clone, V: Visitor<E>>(visitor: &mut V, StaticRegionTyParamBound => {} UnboxedFnTyParamBound(ref function_declaration) => { for argument in function_declaration.decl.inputs.iter() { - visitor.visit_ty(argument.ty, env.clone()) + visitor.visit_ty(&*argument.ty, env.clone()) } - visitor.visit_ty(function_declaration.decl.output, + visitor.visit_ty(&*function_declaration.decl.output, env.clone()); } OtherRegionTyParamBound(..) => {} @@ -595,7 +595,7 @@ pub fn walk_ty_method<E: Clone, V: Visitor<E>>(visitor: &mut V, visitor.visit_ty(&*argument_type.ty, env.clone()) } visitor.visit_generics(&method_type.generics, env.clone()); - visitor.visit_ty(method_type.decl.output, env.clone()); + visitor.visit_ty(&*method_type.decl.output, env.clone()); for attr in method_type.attrs.iter() { visitor.visit_attribute(attr, env.clone()); } @@ -634,7 +634,7 @@ pub fn walk_struct_field<E: Clone, V: Visitor<E>>(visitor: &mut V, _ => {} } - visitor.visit_ty(struct_field.node.ty, env.clone()); + visitor.visit_ty(&*struct_field.node.ty, env.clone()); for attr in struct_field.node.attrs.iter() { visitor.visit_attribute(attr, env.clone()); @@ -826,7 +826,7 @@ pub fn walk_arm<E: Clone, V: Visitor<E>>(visitor: &mut V, arm: &Arm, env: E) { visitor.visit_pat(&**pattern, env.clone()) } walk_expr_opt(visitor, arm.guard, env.clone()); - visitor.visit_expr(arm.body, env.clone()); + visitor.visit_expr(&*arm.body, env.clone()); for attr in arm.attrs.iter() { visitor.visit_attribute(attr, env.clone()); } |
