-
Notifications
You must be signed in to change notification settings - Fork 12.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of #77862 - danielhenrymantilla:rustdoc/fix-macros_2_0-pat…
…hs, r=jyn514,petrochenkov Rustdoc: Fix macros 2.0 and built-in derives being shown at the wrong path Fixes #74355 - ~~waiting on author + draft PR since my code ought to be cleaned up _w.r.t._ the way I avoid the `.unwrap()`s:~~ - ~~dummy items may avoid the first `?`,~~ - ~~but within the module traversal some tests did fail (hence the second `?`), meaning the crate did not possess the exact path of the containing module (`extern` / `impl` blocks maybe? I'll look into that).~~ r? `@jyn514`
- Loading branch information
Showing
6 changed files
with
163 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
// edition:2018 | ||
|
||
#![feature(decl_macro)] | ||
#![crate_name = "external_crate"] | ||
|
||
pub mod some_module { | ||
/* == Make sure the logic is not affected by a re-export == */ | ||
mod private { | ||
pub macro external_macro() {} | ||
} | ||
|
||
pub use private::external_macro; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
// aux-build:macro_pub_in_module.rs | ||
// edition:2018 | ||
// build-aux-docs | ||
|
||
//! See issue #74355 | ||
#![feature(decl_macro, no_core, rustc_attrs)] | ||
#![crate_name = "krate"] | ||
#![no_core] | ||
|
||
// @has external_crate/some_module/macro.external_macro.html | ||
// @!has external_crate/macro.external_macro.html | ||
extern crate external_crate; | ||
|
||
pub mod inner { | ||
// @has krate/inner/macro.raw_const.html | ||
// @!has krate/macro.raw_const.html | ||
pub macro raw_const() {} | ||
|
||
// @has krate/inner/macro.test.html | ||
// @!has krate/macro.test.html | ||
#[rustc_builtin_macro] | ||
pub macro test($item:item) {} | ||
|
||
// @has krate/inner/macro.Clone.html | ||
// @!has krate/macro.Clone.html | ||
#[rustc_builtin_macro] | ||
pub macro Clone($item:item) {} | ||
|
||
// Make sure the logic is not affected by re-exports. | ||
mod unrenamed { | ||
// @!has krate/macro.unrenamed.html | ||
#[rustc_macro_transparency = "semitransparent"] | ||
pub macro unrenamed() {} | ||
} | ||
// @has krate/inner/macro.unrenamed.html | ||
pub use unrenamed::unrenamed; | ||
|
||
mod private { | ||
// @!has krate/macro.m.html | ||
pub macro m() {} | ||
} | ||
// @has krate/inner/macro.renamed.html | ||
// @!has krate/macro.renamed.html | ||
pub use private::m as renamed; | ||
|
||
mod private2 { | ||
// @!has krate/macro.m2.html | ||
pub macro m2() {} | ||
} | ||
use private2 as renamed_mod; | ||
// @has krate/inner/macro.m2.html | ||
pub use renamed_mod::m2; | ||
|
||
// @has krate/inner/macro.external_macro.html | ||
// @!has krate/macro.external_macro.html | ||
pub use ::external_crate::some_module::external_macro; | ||
} | ||
|
||
// Namespaces: Make sure the logic does not mix up a function name with a module name… | ||
fn both_fn_and_mod() { | ||
// @!has krate/macro.in_both_fn_and_mod.html | ||
pub macro in_both_fn_and_mod() {} | ||
} | ||
pub mod both_fn_and_mod { | ||
// @!has krate/both_fn_and_mod/macro.in_both_fn_and_mod.html | ||
} | ||
|
||
const __: () = { | ||
// @!has krate/macro.in_both_const_and_mod.html | ||
pub macro in_both_const_and_mod() {} | ||
}; | ||
pub mod __ { | ||
// @!has krate/__/macro.in_both_const_and_mod.html | ||
} | ||
|
||
enum Enum { | ||
Crazy = { | ||
// @!has krate/macro.this_is_getting_weird.html; | ||
pub macro this_is_getting_weird() {} | ||
42 | ||
}, | ||
} |