about summary refs log tree commit diff
path: root/src/librustdoc
diff options
context:
space:
mode:
authorJakub Wieczorek <jakub@jakub.cc>2014-07-18 00:56:56 +0200
committerJakub Wieczorek <jakub@jakub.cc>2014-07-20 12:40:08 +0200
commit4b9bc2e8f268dfe2a2462c4e378e5a0eeefa2cf4 (patch)
treeada16b620d93f1ae709185df0986c58a62614e8d /src/librustdoc
parent50481f55030f02543e1b3b6ae008d77b1cef3e98 (diff)
downloadrust-4b9bc2e8f268dfe2a2462c4e378e5a0eeefa2cf4.tar.gz
rust-4b9bc2e8f268dfe2a2462c4e378e5a0eeefa2cf4.zip
Implement new mod import sugar
Implements RFC #168.
Diffstat (limited to 'src/librustdoc')
-rw-r--r--src/librustdoc/clean/mod.rs18
-rw-r--r--src/librustdoc/visit_ast.rs2
2 files changed, 13 insertions, 7 deletions
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs
index 9f5df205aa4..3cb2e9c6ec9 100644
--- a/src/librustdoc/clean/mod.rs
+++ b/src/librustdoc/clean/mod.rs
@@ -1779,13 +1779,13 @@ impl Clean<Vec<Item>> for ast::ViewItem {
                         // to keep any non-inlineable reexports so they can be
                         // listed in the documentation.
                         let remaining = list.iter().filter(|path| {
-                            match inline::try_inline(path.node.id) {
+                            match inline::try_inline(path.node.id()) {
                                 Some(items) => {
                                     ret.extend(items.move_iter()); false
                                 }
                                 None => true,
                             }
-                        }).map(|a| a.clone()).collect::<Vec<ast::PathListIdent>>();
+                        }).map(|a| a.clone()).collect::<Vec<ast::PathListItem>>();
                         if remaining.len() > 0 {
                             let path = ast::ViewPathList(a.clone(),
                                                          remaining,
@@ -1868,11 +1868,17 @@ pub struct ViewListIdent {
     pub source: Option<ast::DefId>,
 }
 
-impl Clean<ViewListIdent> for ast::PathListIdent {
+impl Clean<ViewListIdent> for ast::PathListItem {
     fn clean(&self) -> ViewListIdent {
-        ViewListIdent {
-            name: self.node.name.clean(),
-            source: resolve_def(self.node.id),
+        match self.node {
+            ast::PathListIdent { id, name } => ViewListIdent {
+                name: name.clean(),
+                source: resolve_def(id)
+            },
+            ast::PathListMod { id } => ViewListIdent {
+                name: "mod".to_string(),
+                source: resolve_def(id)
+            }
         }
     }
 }
diff --git a/src/librustdoc/visit_ast.rs b/src/librustdoc/visit_ast.rs
index b7ef0956a7c..c8f9ed64a77 100644
--- a/src/librustdoc/visit_ast.rs
+++ b/src/librustdoc/visit_ast.rs
@@ -187,7 +187,7 @@ impl<'a> RustdocVisitor<'a> {
             ast::ViewPathList(ref p, ref paths, ref b) => {
                 let mut mine = Vec::new();
                 for path in paths.iter() {
-                    if !self.resolve_id(path.node.id, false, om, please_inline) {
+                    if !self.resolve_id(path.node.id(), false, om, please_inline) {
                         mine.push(path.clone());
                     }
                 }