diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2015-08-13 10:57:34 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2015-08-14 20:07:55 -0400 |
| commit | 8a6118b74840727e17ec42b0aa6d7a215d57d2df (patch) | |
| tree | cc3c3223c8e02f6c3248562695d6216bfb684f47 /src/libsyntax | |
| parent | c1e865c9df3c6928525025e410fc3d165fb97c85 (diff) | |
| download | rust-8a6118b74840727e17ec42b0aa6d7a215d57d2df.tar.gz rust-8a6118b74840727e17ec42b0aa6d7a215d57d2df.zip | |
move InlinedItem into librustc, where it belongs
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/ast.rs | 12 | ||||
| -rw-r--r-- | src/libsyntax/ast_util.rs | 33 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 11 |
3 files changed, 11 insertions, 45 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 08c6dcc7f87..0bcd97cfe87 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -23,7 +23,6 @@ pub use self::FloatTy::*; pub use self::FunctionRetTy::*; pub use self::ForeignItem_::*; pub use self::ImplItem_::*; -pub use self::InlinedItem::*; pub use self::IntTy::*; pub use self::Item_::*; pub use self::KleeneOp::*; @@ -1925,17 +1924,6 @@ impl ForeignItem_ { } } -/// The data we save and restore about an inlined item or method. This is not -/// part of the AST that we parse from a file, but it becomes part of the tree -/// that we trans. -#[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash, Debug)] -pub enum InlinedItem { - IIItem(P<Item>), - IITraitItem(DefId /* impl id */, P<TraitItem>), - IIImplItem(DefId /* impl id */, P<ImplItem>), - IIForeign(P<ForeignItem>), -} - /// A macro definition, in this crate or imported from another. /// /// Not parsed directly, but created on macro import or `macro_rules!` expansion. diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index 83d3c9c4ec5..7aff92ecb70 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -503,19 +503,18 @@ impl<'a, 'v, O: IdVisitingOperation> Visitor<'v> for IdVisitor<'a, O> { } } -pub fn visit_ids_for_inlined_item<O: IdVisitingOperation>(item: &InlinedItem, - operation: &mut O) { - let mut id_visitor = IdVisitor { - operation: operation, - pass_through_items: true, - visited_outermost: false, - }; - - visit::walk_inlined_item(&mut id_visitor, item); +pub struct IdRangeComputingVisitor { + result: IdRange, } -struct IdRangeComputingVisitor { - result: IdRange, +impl IdRangeComputingVisitor { + pub fn new() -> IdRangeComputingVisitor { + IdRangeComputingVisitor { result: IdRange::max() } + } + + pub fn result(&self) -> IdRange { + self.result + } } impl IdVisitingOperation for IdRangeComputingVisitor { @@ -524,14 +523,6 @@ impl IdVisitingOperation for IdRangeComputingVisitor { } } -pub fn compute_id_range_for_inlined_item(item: &InlinedItem) -> IdRange { - let mut visitor = IdRangeComputingVisitor { - result: IdRange::max() - }; - visit_ids_for_inlined_item(item, &mut visitor); - visitor.result -} - /// Computes the id range for a single fn body, ignoring nested items. pub fn compute_id_range_for_fn_body(fk: visit::FnKind, decl: &FnDecl, @@ -540,9 +531,7 @@ pub fn compute_id_range_for_fn_body(fk: visit::FnKind, id: NodeId) -> IdRange { - let mut visitor = IdRangeComputingVisitor { - result: IdRange::max() - }; + let mut visitor = IdRangeComputingVisitor::new(); let mut id_visitor = IdVisitor { operation: &mut visitor, pass_through_items: false, diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index ad144d6033b..259564337a2 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -142,17 +142,6 @@ pub trait Visitor<'v> : Sized { fn visit_attribute(&mut self, _attr: &'v Attribute) {} } -pub fn walk_inlined_item<'v,V>(visitor: &mut V, item: &'v InlinedItem) - where V: Visitor<'v> { - match *item { - IIItem(ref i) => visitor.visit_item(&**i), - IIForeign(ref i) => visitor.visit_foreign_item(&**i), - IITraitItem(_, ref ti) => visitor.visit_trait_item(ti), - IIImplItem(_, ref ii) => visitor.visit_impl_item(ii), - } -} - - pub fn walk_crate<'v, V: Visitor<'v>>(visitor: &mut V, krate: &'v Crate) { visitor.visit_mod(&krate.module, krate.span, CRATE_NODE_ID); for attr in &krate.attrs { |
