rust/compiler
bors beef07fe8f Auto merge of #113958 - lukas-code:doc-links, r=GuillaumeGomez,petrochenkov
fix intra-doc links on nested `use` and `extern crate` items

This PR fixes two rustdoc ICEs that happen if there are any intra-doc links on nested `use` or `extern crate` items, for example:
```rust
/// Re-export [`fmt`] and [`io`].
pub use std::{fmt, io}; // "nested" use = use with braces

/// Re-export [`std`].
pub extern crate std;
```

Nested use items were incorrectly considered private and therefore didn't have their intra-doc links resolved. I fixed this by always resolving intra-doc links for nested `use` items that are declared `pub`.

<details>

During AST->HIR lowering, nested `use` items are desugared like this:
```rust
pub use std::{}; // "list stem"
pub use std::fmt;
pub use std::io;
```
Each of these HIR nodes has it's own effective visibility and the list stem is always considered private.
To check the effective visibility of an AST node, the AST node is mapped to a HIR node with `Resolver::local_def_id`, which returns the (private) list stem for nested use items.

</details>

For `extern crate`, there was a hack in rustdoc that stored the `DefId` of the crate itself in the cleaned item, instead of the `DefId` of the `extern crate` item. This made rustdoc look at the resolved links of the extern crate's crate root instead of the `extern crate` item. I've removed this hack and instead translate the `DefId` in the appropriate places.

As as side effect of fixing `extern crate`, i've turned
```rust
#[doc(masked)]
extern crate self as _;
```
into a no-op instead of hiding all trait impls. Proper verification for `doc(masked)` is included as a bonus.

fixes https://github.com/rust-lang/rust/issues/113896
2023-07-25 01:35:53 +00:00
..
rustc
rustc_abi Revert "Auto merge of #113166 - moulins:ref-niches-initial, r=oli-obk" 2023-07-21 22:35:57 -07:00
rustc_apfloat
rustc_arena
rustc_ast more clippy::style fixes: 2023-07-23 23:39:04 +02:00
rustc_ast_lowering more clippy::style fixes: 2023-07-23 23:39:04 +02:00
rustc_ast_passes Lint against misplaced where-clauses on assoc tys in traits 2023-07-11 01:19:11 +02:00
rustc_ast_pretty more clippy::style fixes: 2023-07-23 23:39:04 +02:00
rustc_attr Add infrastructure #[rustc_confusables] attribute to allow targeted 2023-07-16 19:22:03 +08:00
rustc_baked_icu_data
rustc_borrowck Rename arg_iter to iter_instantiated 2023-07-17 21:04:12 +00:00
rustc_builtin_macros fix couple of clippy findings: 2023-07-23 10:50:14 +02:00
rustc_codegen_cranelift Merge commit '1eded3619d0e55d57521a259bf27a03906fdfad0' into sync_cg_clif-2023-07-22 2023-07-22 13:32:34 +00:00
rustc_codegen_gcc Auto merge of #113877 - JhonnyBillM:reuse-codegen-ssa-monomorphization-errors-in-gcc, r=davidtwco 2023-07-24 11:29:59 +00:00
rustc_codegen_llvm Revert "Auto merge of #113166 - moulins:ref-niches-initial, r=oli-obk" 2023-07-21 22:35:57 -07:00
rustc_codegen_ssa remove redundant clones 2023-07-23 09:48:07 +02:00
rustc_const_eval Auto merge of #113853 - cjgillot:split-validator, r=compiler-errors 2023-07-22 16:59:23 +00:00
rustc_data_structures more clippy::style fixes: 2023-07-23 23:39:04 +02:00
rustc_driver Update rustix 2023-07-03 07:20:51 +00:00
rustc_driver_impl Rollup merge of #113780 - dtolnay:printkindpath, r=b-naber 2023-07-21 06:52:28 +02:00
rustc_error_codes error/E0691: include alignment in error message 2023-07-21 11:04:16 +02:00
rustc_error_messages On nightly, dump ICE backtraces to disk 2023-07-19 14:10:07 +00:00
rustc_errors Optimize format usage 2023-07-24 00:08:09 -04:00
rustc_expand Don't translate compiler-internal bug messages 2023-07-20 09:51:47 +00:00
rustc_feature Add infrastructure #[rustc_confusables] attribute to allow targeted 2023-07-16 19:22:03 +08:00
rustc_fluent_macro
rustc_fs_util
rustc_graphviz
rustc_hir more clippy::style fixes: 2023-07-23 23:39:04 +02:00
rustc_hir_analysis fix clippy::useless_format 2023-07-23 11:14:52 +02:00
rustc_hir_pretty hir: Add Become expression kind 2023-06-26 08:56:32 +00:00
rustc_hir_typeck fix some clippy::style findings 2023-07-23 23:36:56 +02:00
rustc_incremental Re-format let-else per rustfmt update 2023-07-12 21:49:27 -04:00
rustc_index Re-format let-else per rustfmt update 2023-07-12 21:49:27 -04:00
rustc_infer fix some clippy::style findings 2023-07-23 23:36:56 +02:00
rustc_interface Revert "Auto merge of #113166 - moulins:ref-niches-initial, r=oli-obk" 2023-07-21 22:35:57 -07:00
rustc_lexer fix some clippy::style findings 2023-07-23 23:36:56 +02:00
rustc_lint lint/ctypes: only try normalize 2023-07-21 15:42:25 +01:00
rustc_lint_defs Fix removal span calculation of unused_qualifications suggestion 2023-07-18 09:52:08 +08:00
rustc_llvm Support .comment section like GCC/Clang (!llvm.ident) 2023-07-21 22:01:50 +02:00
rustc_log Downgrade tracing and syn 2023-07-02 21:02:31 +02:00
rustc_macros Re-format let-else per rustfmt update 2023-07-12 21:49:27 -04:00
rustc_metadata Auto merge of #113958 - lukas-code:doc-links, r=GuillaumeGomez,petrochenkov 2023-07-25 01:35:53 +00:00
rustc_middle Auto merge of #113956 - fmease:rustdoc-fix-x-crate-rpitits, r=GuillaumeGomez,compiler-errors 2023-07-24 15:19:00 +00:00
rustc_mir_build Make it clearer that edition functions are >=, not == 2023-07-19 16:38:35 +00:00
rustc_mir_dataflow Turn copy into moves during DSE. 2023-07-19 09:59:12 +00:00
rustc_mir_transform Reuse MIR validator for inliner. 2023-07-21 13:58:33 +00:00
rustc_monomorphize more clippy::style fixes: 2023-07-23 23:39:04 +02:00
rustc_parse Rollup merge of #113994 - nyurik:parser-fmt-ref, r=davidtwco 2023-07-24 17:47:10 +02:00
rustc_parse_format Fix unit tests 2023-07-19 16:37:09 +00:00
rustc_passes validate doc(masked) 2023-07-24 18:04:35 +02:00
rustc_plugin_impl
rustc_privacy refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
rustc_query_impl fix couple of clippy findings: 2023-07-23 10:50:14 +02:00
rustc_query_system Revert "Auto merge of #113166 - moulins:ref-niches-initial, r=oli-obk" 2023-07-21 22:35:57 -07:00
rustc_resolve Auto merge of #113958 - lukas-code:doc-links, r=GuillaumeGomez,petrochenkov 2023-07-25 01:35:53 +00:00
rustc_serialize Upgrade to indexmap 2.0.0 2023-07-03 13:51:54 -07:00
rustc_session Add missing documentation for Session::time 2023-07-24 16:50:25 +02:00
rustc_smir Dynamic for smir 2023-07-24 00:17:45 -04:00
rustc_span Make it clearer that edition functions are >=, not == 2023-07-19 16:38:35 +00:00
rustc_symbol_mangling more clippy::style fixes: 2023-07-23 23:39:04 +02:00
rustc_target Rollup merge of #113992 - chrisnc:arm-none-fixups, r=oli-obk 2023-07-24 17:47:09 +02:00
rustc_trait_selection Auto merge of #114024 - matthiaskrgr:rollup-uhdbq64, r=matthiaskrgr 2023-07-24 17:13:24 +00:00
rustc_traits refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
rustc_transmute Auto merge of #113677 - bryangarza:unevaluated-const-ice_issue-110892, r=davidtwco 2023-07-18 09:07:32 +00:00
rustc_ty_utils fix some clippy::style findings 2023-07-23 23:36:56 +02:00
rustc_type_ir add docs for AliasKind::Inherent 2023-07-22 15:38:41 -04:00