diff options
| author | bors <bors@rust-lang.org> | 2022-10-31 15:40:56 +0000 | 
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-10-31 15:40:56 +0000 | 
| commit | d939e5a3e5eb34dd1e828b9ad244ee6e6a0a989b (patch) | |
| tree | 0189c6207ebdb209cb730de78e1adb0d14e34155 /src/librustdoc/clean/inline.rs | |
| parent | 90b3882115c9c499b67824b89b641b51f5c0c40d (diff) | |
| parent | 4bf5437062ea7bdb9210221ed926776b9086ccba (diff) | |
| download | rust-d939e5a3e5eb34dd1e828b9ad244ee6e6a0a989b.tar.gz rust-d939e5a3e5eb34dd1e828b9ad244ee6e6a0a989b.zip | |
Auto merge of #103804 - Mark-Simulacrum:stable-next, r=Mark-Simulacrum
[stable] 1.67.0 release Last minute backports: * rustdoc: add support for incoherent impls on structs and traits #103746 r? `@ghost`
Diffstat (limited to 'src/librustdoc/clean/inline.rs')
| -rw-r--r-- | src/librustdoc/clean/inline.rs | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/src/librustdoc/clean/inline.rs b/src/librustdoc/clean/inline.rs index c8aa51c3a49..df0e9f7cc8c 100644 --- a/src/librustdoc/clean/inline.rs +++ b/src/librustdoc/clean/inline.rs @@ -296,6 +296,21 @@ pub(crate) fn build_impls( for &did in tcx.inherent_impls(did).iter() { build_impl(cx, parent_module, did, attrs, ret); } + + // This pretty much exists expressly for `dyn Error` traits that exist in the `alloc` crate. + // See also: + // + // * https://github.com/rust-lang/rust/issues/103170 — where it didn't used to get documented + // * https://github.com/rust-lang/rust/pull/99917 — where the feature got used + // * https://github.com/rust-lang/rust/issues/53487 — overall tracking issue for Error + if tcx.has_attr(did, sym::rustc_has_incoherent_inherent_impls) { + use rustc_middle::ty::fast_reject::SimplifiedTypeGen::*; + let type_ = + if tcx.is_trait(did) { TraitSimplifiedType(did) } else { AdtSimplifiedType(did) }; + for &did in tcx.incoherent_impls(type_) { + build_impl(cx, parent_module, did, attrs, ret); + } + } } /// `parent_module` refers to the parent of the re-export, not the original item | 
