]> git.lizzy.rs Git - rust.git/blobdiff - src/librustdoc/clean/inline.rs
rollup merge of #17355 : gamazeps/issue17210
[rust.git] / src / librustdoc / clean / inline.rs
index e0afb80ad37f5ee203f30366849e54d619c19791..1a324e25472cf186a20f1638f4734c4fb22221e1 100644 (file)
@@ -52,7 +52,7 @@ pub fn try_inline(cx: &DocContext, id: ast::NodeId, into: Option<ast::Ident>)
     let did = def.def_id();
     if ast_util::is_local(did) { return None }
     try_inline_def(cx, tcx, def).map(|vec| {
-        vec.move_iter().map(|mut item| {
+        vec.into_iter().map(|mut item| {
             match into {
                 Some(into) if item.name.is_some() => {
                     item.name = Some(into.clean(cx));
@@ -84,12 +84,17 @@ fn try_inline_def(cx: &DocContext, tcx: &ty::ctxt,
         }
         def::DefStruct(did) => {
             record_extern_fqn(cx, did, clean::TypeStruct);
-            ret.extend(build_impls(cx, tcx, did).move_iter());
+            ret.extend(build_impls(cx, tcx, did).into_iter());
             clean::StructItem(build_struct(cx, tcx, did))
         }
-        def::DefTy(did) => {
+        def::DefTy(did, false) => {
+            record_extern_fqn(cx, did, clean::TypeTypedef);
+            ret.extend(build_impls(cx, tcx, did).into_iter());
+            build_type(cx, tcx, did)
+        }
+        def::DefTy(did, true) => {
             record_extern_fqn(cx, did, clean::TypeEnum);
-            ret.extend(build_impls(cx, tcx, did).move_iter());
+            ret.extend(build_impls(cx, tcx, did).into_iter());
             build_type(cx, tcx, did)
         }
         // Assume that the enum type is reexported next to the variant, and
@@ -123,7 +128,7 @@ pub fn load_attrs(cx: &DocContext, tcx: &ty::ctxt,
                   did: ast::DefId) -> Vec<clean::Attribute> {
     let mut attrs = Vec::new();
     csearch::get_item_attrs(&tcx.sess.cstore, did, |v| {
-        attrs.extend(v.move_iter().map(|a| {
+        attrs.extend(v.into_iter().map(|a| {
             a.clean(cx)
         }));
     });
@@ -138,7 +143,7 @@ pub fn record_extern_fqn(cx: &DocContext, did: ast::DefId, kind: clean::TypeKind
     match cx.tcx_opt() {
         Some(tcx) => {
             let fqn = csearch::get_item_path(tcx, did);
-            let fqn = fqn.move_iter().map(|i| i.to_string()).collect();
+            let fqn = fqn.into_iter().map(|i| i.to_string()).collect();
             cx.external_paths.borrow_mut().as_mut().unwrap().insert(did, (fqn, kind));
         }
         None => {}
@@ -150,7 +155,7 @@ pub fn build_external_trait(cx: &DocContext, tcx: &ty::ctxt,
     let def = ty::lookup_trait_def(tcx, did);
     let trait_items = ty::trait_items(tcx, did).clean(cx);
     let provided = ty::provided_trait_methods(tcx, did);
-    let mut items = trait_items.move_iter().map(|trait_item| {
+    let mut items = trait_items.into_iter().map(|trait_item| {
         if provided.iter().any(|a| a.def_id == trait_item.def_id) {
             clean::ProvidedMethod(trait_item)
         } else {
@@ -226,7 +231,7 @@ fn build_impls(cx: &DocContext, tcx: &ty::ctxt,
     match tcx.inherent_impls.borrow().find(&did) {
         None => {}
         Some(i) => {
-            impls.extend(i.borrow().iter().map(|&did| { build_impl(cx, tcx, did) }));
+            impls.extend(i.iter().map(|&did| { build_impl(cx, tcx, did) }));
         }
     }
 
@@ -262,7 +267,7 @@ fn populate_impls(cx: &DocContext, tcx: &ty::ctxt,
         }
     }
 
-    impls.move_iter().filter_map(|a| a).collect()
+    impls.into_iter().filter_map(|a| a).collect()
 }
 
 fn build_impl(cx: &DocContext, tcx: &ty::ctxt,
@@ -311,6 +316,10 @@ fn build_impl(cx: &DocContext, tcx: &ty::ctxt,
                 };
                 Some(item)
             }
+            ty::TypeTraitItem(_) => {
+                // FIXME(pcwalton): Implement.
+                None
+            }
         }
     }).collect();
     return Some(clean::Item {
@@ -369,7 +378,7 @@ fn fill_in(cx: &DocContext, tcx: &ty::ctxt, did: ast::DefId,
                 }
                 decoder::DlDef(def) if vis == ast::Public => {
                     match try_inline_def(cx, tcx, def) {
-                        Some(i) => items.extend(i.move_iter()),
+                        Some(i) => items.extend(i.into_iter()),
                         None => {}
                     }
                 }