diff --git a/src/librustdoc/visit_ast.rs b/src/librustdoc/visit_ast.rs index 8c2555c4b3de2..f05cbbfd7a2b6 100644 --- a/src/librustdoc/visit_ast.rs +++ b/src/librustdoc/visit_ast.rs @@ -244,10 +244,10 @@ impl<'a, 'tcx, 'rcx> RustdocVisitor<'a, 'tcx, 'rcx> { def_id, attrs: def.attrs.clone().into(), name: def.ident.name, - whence: def.span, + whence: self.cx.tcx.def_span(def_id), matchers, - stab: self.stability(def.id), - depr: self.deprecation(def.id), + stab: self.cx.tcx.lookup_stability(def_id).cloned(), + depr: self.cx.tcx.lookup_deprecation(def_id), imported_from: Some(imported_from), }) } diff --git a/src/test/rustdoc/inline_cross/auxiliary/macros.rs b/src/test/rustdoc/inline_cross/auxiliary/macros.rs new file mode 100644 index 0000000000000..39b52d68bf1c2 --- /dev/null +++ b/src/test/rustdoc/inline_cross/auxiliary/macros.rs @@ -0,0 +1,21 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![feature(staged_api)] + +#![stable(feature = "rust1", since = "1.0.0")] + +/// docs for my_macro +#[unstable(feature = "macro_test", issue = "0")] +#[rustc_deprecated(since = "1.2.3", reason = "text")] +#[macro_export] +macro_rules! my_macro { + () => () +} diff --git a/src/test/rustdoc/inline_cross/macros.rs b/src/test/rustdoc/inline_cross/macros.rs new file mode 100644 index 0000000000000..8d2f7d15d7d7f --- /dev/null +++ b/src/test/rustdoc/inline_cross/macros.rs @@ -0,0 +1,28 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// aux-build:macros.rs +// build-aux-docs + +#![feature(macro_test)] +#![feature(use_extern_macros)] + +#![crate_name = "foo"] + +extern crate macros; + +// @has foo/index.html '//*[@class="docblock-short"]' '[Deprecated] [Experimental]' + +// @has foo/macro.my_macro.html +// @has - '//*[@class="docblock"]' 'docs for my_macro' +// @has - '//*[@class="stab deprecated"]' 'Deprecated since 1.2.3: text' +// @has - '//*[@class="stab unstable"]' 'macro_test' +// @has - '//a/@href' '../src/macros/macros.rs.html#19-21' +pub use macros::my_macro;