diff options
Diffstat (limited to 'src/librustdoc')
| -rw-r--r-- | src/librustdoc/clean/inline.rs | 4 | ||||
| -rw-r--r-- | src/librustdoc/clean/mod.rs | 3 | ||||
| -rw-r--r-- | src/librustdoc/core.rs | 8 | ||||
| -rw-r--r-- | src/librustdoc/html/render.rs | 8 | ||||
| -rw-r--r-- | src/librustdoc/html/static/rustdoc.css | 17 | ||||
| -rw-r--r-- | src/librustdoc/test.rs | 2 |
6 files changed, 29 insertions, 13 deletions
diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index 7f5d11ba5de..3a4dcc32173 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -474,9 +474,9 @@ impl hir::print::PpAnn for InlinedConst { } pub fn print_inlined_const(cx: &DocContext, did: DefId) -> String { - let body = cx.tcx.extern_const_body(did); + let body = cx.tcx.extern_const_body(did).body; let inlined = InlinedConst { - nested_bodies: cx.tcx.item_body_nested_bodies(did) + nested_bodies: cx.tcx.item_body_nested_bodies(did).nested_bodies }; hir::print::to_string(&inlined, |s| s.print_expr(&body.value)) } diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 3be09373408..73ab286f185 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -1835,7 +1835,8 @@ impl Clean<Type> for hir::Ty { for (i, lt_param) in generics.lifetimes.iter().enumerate() { if let Some(lt) = provided_params.lifetimes.get(i).cloned() { if !lt.is_elided() { - lt_substs.insert(lt_param.lifetime.id, lt.clean(cx)); + let lt_def_id = cx.tcx.hir.local_def_id(lt_param.lifetime.id); + lt_substs.insert(lt_def_id, lt.clean(cx)); } } } diff --git a/src/librustdoc/core.rs b/src/librustdoc/core.rs index 0c0748cf673..1663e5ad142 100644 --- a/src/librustdoc/core.rs +++ b/src/librustdoc/core.rs @@ -24,7 +24,7 @@ use rustc_trans::back::link; use rustc_resolve as resolve; use rustc_metadata::cstore::CStore; -use syntax::{ast, codemap}; +use syntax::codemap; use syntax::feature_gate::UnstableFeatures; use syntax::fold::Folder; use errors; @@ -65,7 +65,7 @@ pub struct DocContext<'a, 'tcx: 'a> { /// Table type parameter definition -> substituted type pub ty_substs: RefCell<FxHashMap<Def, clean::Type>>, /// Table node id of lifetime parameter definition -> substituted lifetime - pub lt_substs: RefCell<FxHashMap<ast::NodeId, clean::Lifetime>>, + pub lt_substs: RefCell<FxHashMap<DefId, clean::Lifetime>>, } impl<'a, 'tcx> DocContext<'a, 'tcx> { @@ -77,7 +77,7 @@ impl<'a, 'tcx> DocContext<'a, 'tcx> { /// the substitutions for a type alias' RHS. pub fn enter_alias<F, R>(&self, ty_substs: FxHashMap<Def, clean::Type>, - lt_substs: FxHashMap<ast::NodeId, clean::Lifetime>, + lt_substs: FxHashMap<DefId, clean::Lifetime>, f: F) -> R where F: FnOnce() -> R { let (old_tys, old_lts) = @@ -175,7 +175,7 @@ pub fn run_core(search_paths: SearchPaths, let arena = DroplessArena::new(); let arenas = GlobalArenas::new(); - let hir_map = hir_map::map_crate(&mut hir_forest, defs); + let hir_map = hir_map::map_crate(&mut hir_forest, &defs); let output_filenames = driver::build_output_filenames(&input, &None, &None, diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index c09ce4c4bd3..bf0fe5f6e9d 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -2671,8 +2671,9 @@ fn item_struct(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, let ns_id = derive_id(format!("{}.{}", field.name.as_ref().unwrap(), ItemType::StructField.name_space())); - write!(w, "<span id='{id}' class=\"{item_type}\"> - <span id='{ns_id}' class='invisible'> + write!(w, "<span id=\"{id}\" class=\"{item_type} small-section-header\"> + <a href=\"#{id}\" class=\"anchor field\"></a> + <span id=\"{ns_id}\" class='invisible'> <code>{name}: {ty}</code> </span></span>", item_type = ItemType::StructField, @@ -2793,7 +2794,8 @@ fn item_enum(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, let ns_id = derive_id(format!("{}.{}", variant.name.as_ref().unwrap(), ItemType::Variant.name_space())); - write!(w, "<span id='{id}' class='variant'>\ + write!(w, "<span id=\"{id}\" class=\"variant small-section-header\">\ + <a href=\"#{id}\" class=\"anchor field\"></a>\ <span id='{ns_id}' class='invisible'><code>{name}", id = id, ns_id = ns_id, diff --git a/src/librustdoc/html/static/rustdoc.css b/src/librustdoc/html/static/rustdoc.css index c15051376bf..5727d3c5f70 100644 --- a/src/librustdoc/html/static/rustdoc.css +++ b/src/librustdoc/html/static/rustdoc.css @@ -288,6 +288,7 @@ nav.sub { .docblock { margin-left: 24px; + position: relative; } .content .out-of-band { @@ -456,8 +457,13 @@ a { } .anchor { display: none; + position: absolute; + left: -25px; } -.anchor:after { +.anchor.field { + left: -20px; +} +.anchor:before { content: '\2002\00a7\2002'; } @@ -625,7 +631,9 @@ a.test-arrow:hover{ text-decoration: none; } -.section-header:hover a:after { +.section-header:hover a:before { + position: absolute; + left: -25px; content: '\2002\00a7\2002'; } @@ -817,6 +825,7 @@ span.since { position: absolute; left: -1px; margin-top: 7px; + z-index: 1; } .tooltip { @@ -853,3 +862,7 @@ span.since { border-style: solid; border-color: transparent black transparent transparent; } + +pre.rust { + position: relative; +} diff --git a/src/librustdoc/test.rs b/src/librustdoc/test.rs index 95c0f5f5d63..36efc37a809 100644 --- a/src/librustdoc/test.rs +++ b/src/librustdoc/test.rs @@ -124,7 +124,7 @@ pub fn run(input: &str, render_type); { - let map = hir::map::map_crate(&mut hir_forest, defs); + let map = hir::map::map_crate(&mut hir_forest, &defs); let krate = map.krate(); let mut hir_collector = HirCollector { sess: &sess, |
