diff --git a/src/librustdoc/clean/utils.rs b/src/librustdoc/clean/utils.rs index 92f9f5991e2..0089a3838f4 100644 --- a/src/librustdoc/clean/utils.rs +++ b/src/librustdoc/clean/utils.rs @@ -521,14 +521,15 @@ crate fn find_nearest_parent_module(tcx: TyCtxt<'_>, def_id: DefId) -> Option, flag: Symbol) -> bool { attrs.iter().any(|attr| { attr.has_name(sym::doc) diff --git a/src/librustdoc/formats/cache.rs b/src/librustdoc/formats/cache.rs index ef4e0e0d57c..e9c5dd50d59 100644 --- a/src/librustdoc/formats/cache.rs +++ b/src/librustdoc/formats/cache.rs @@ -245,16 +245,12 @@ impl<'a, 'tcx> DocFolder for CacheBuilder<'a, 'tcx> { } } - let tcx = self.tcx; // Propagate a trait method's documentation to all implementors of the // trait. if let clean::TraitItem(ref t) = *item.kind { self.cache.traits.entry(item.def_id).or_insert_with(|| clean::TraitWithExtraInfo { trait_: t.clone(), - is_spotlight: clean::utils::has_doc_flag( - tcx.get_attrs(item.def_id), - sym::spotlight, - ), + is_spotlight: item.attrs.has_doc_flag(sym::spotlight), }); } diff --git a/src/test/rustdoc/spotlight-from-dependency.rs b/src/test/rustdoc/spotlight-from-dependency.rs new file mode 100644 index 00000000000..ed42c435945 --- /dev/null +++ b/src/test/rustdoc/spotlight-from-dependency.rs @@ -0,0 +1,24 @@ +#![crate_name = "foo"] + +use std::iter::Iterator; + +// @has foo/struct.Odd.html +// @has - '//h4[@id="method.new"]//span[@class="notable-traits"]//code/span' 'impl Iterator for Odd' +pub struct Odd { + current: usize, +} + +impl Odd { + pub fn new() -> Odd { + Odd { current: 1 } + } +} + +impl Iterator for Odd { + type Item = usize; + + fn next(&mut self) -> Option { + self.current += 2; + Some(self.current - 2) + } +}