Skip to content

[rustdoc] Render Deref methods on aliased items - #163571

Open
GuillaumeGomez wants to merge 8 commits into
rust-lang:mainfrom
GuillaumeGomez:deref-on-aliased
Open

GuillaumeGomez wants to merge 8 commits into
rust-lang:mainfrom
GuillaumeGomez:deref-on-aliased

Conversation

@GuillaumeGomez

@GuillaumeGomez GuillaumeGomez commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

View all comments

Fixes #134868.
Fixes #24686.

The biggest issue was to make it work only for the matching aliased type generics. Luckily for me, it was already done in write_shared.rs (where we generate the JS file containing the impls that we then put into the generated web pages, which makes me wonder why we don't put that directly into the page by default, but debate for another day...).

r? @lolbinarycat

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Sep 30, 2026
@rustbot

rustbot commented Sep 30, 2026

Copy link
Copy Markdown
Collaborator

lolbinarycat is currently at their maximum review capacity.
They may take a while to respond.

let mut assoc_types = Vec::new();
let mut assoc_fns = Vec::new();
let mut methods = Vec::new();
if let Some(v) = cache.impls.get(&did) {

@GuillaumeGomez GuillaumeGomez Sep 30, 2026 •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most of this diff comes from the removal of one level of indent which became (a few lines above):

    let v = match cache.impls.get(&item_def_id) {
        Some(impls) => impls.as_slice(),
        None if aliased_type.is_some() => &[],
        None => return,
    };

Since we don't render anything, we should have returned early. Now it's done, but ugly diff.

View changes since the review

@@ -54,7 +54,7 @@ impl std::ops::Deref for GenericStruct<u32> {
pub struct Wrap<T>(GenericStruct<T>);

//@ has 'foo/type.Alias.html'
//@ !has - '//h2' 'Methods from Deref<Target = u32>'
//@ has - '//h2' 'Methods from Deref<Target = u32>'

@GuillaumeGomez GuillaumeGomez Sep 30, 2026 •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now we have a Deref on type aliases, so we update here. :3

View changes since the review

let for_ty = self.cx.tcx().type_of(impl_did).skip_binder();
let reject_cx = DeepRejectCtxt::relate_infer_infer(self.cx.tcx());
if !reject_cx.types_may_unify(aliased_ty, for_ty) {
if !super::impl_may_apply_to_type_alias(self.cx.tcx(), self_did, impl_did) {

@GuillaumeGomez GuillaumeGomez Sep 30, 2026 •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like I mentioned in the first comment, took this code and re-used it to filter which Deref was matching the aliased ty.

View changes since the review

let mut deref_impl = None;
let mut has_deref_mut = false;

for impl_ in impls {

@GuillaumeGomez GuillaumeGomez Sep 30, 2026 •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To avoid doing two loops (one to get Deref and the other to check if we also implement DerefMut), inlined it into one.

View changes since the review

@lolbinarycat lolbinarycat left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only major issue I see is I think aliased_type_deref_impl is slightly the wrong level of encapsulation for a function (further explained below), otherwise the code looks solid.

View changes since this review

Comment thread src/librustdoc/html/render/mod.rs Resolved
Comment thread src/librustdoc/html/render/mod.rs Resolved
Comment thread src/librustdoc/html/render/sidebar.rs Resolved
@lolbinarycat

Copy link
Copy Markdown
Contributor

@rustbot author

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 1, 2026
@lolbinarycat

Copy link
Copy Markdown
Contributor

one more thing: can you check locally if these change fixes the issues with ByteString?

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

one more thing: can you check locally if these change fixes the issues with ByteString?

Confirmed it's fixed. Added the code from the first comment of the issue as regression test.

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

Applied all suggestions.

@rustbot ready

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Oct 2, 2026
@rust-log-analyzer

This comment has been minimized.

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

Had to remove the is_same_generic unit test because we can't call is_doc_subtype_of without Context and in particular TyCtxt anymore.

@lolbinarycat lolbinarycat left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

few more nits, but looks pretty good!

View changes since this review

Comment thread src/librustdoc/clean/mod.rs Resolved
if let Some(self_def_id) = self_cleared.def_id(&cache)
&& let Some(other_def_id) = other_cleared.def_id(&cache)
{
return impl_may_apply_to_type_alias(cx.tcx(), self_def_id, other_def_id);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this (and my patch) are still subtly wrong, as the special rustdoc-specific rules is_doc_subtype_of implements won't apply when type aliases are involved. still an improvement over the status quo, but worth a note.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How so?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if i understand the code correctly, Option<u8> and Option<&u8> will compare as doc subtypes, but Option<AliasOfRefU8> and Option<u8> won't.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be worth a test to confirm that. Gonna add one.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope, it works. Adding test. =D

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah no nevermind, the filtering is not working. Too laxist. Oh well, that will be a follow-up. :')

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

Added a test which illustrates the current limitations around type aliases.

@rust-bors

This comment has been minimized.

@rustbot

This comment has been minimized.

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

CI passed.

@rust-bors

This comment has been minimized.

@rustbot

This comment has been minimized.

@rustbot

rustbot commented Oct 16, 2026

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

Fixed merge conflict.

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

ping @lolbinarycat ;)

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

r? @Urgau

@rustbot rustbot assigned Urgau and unassigned lolbinarycat Nov 5, 2026
Comment thread src/librustdoc/formats/mod.rs Resolved
Comment thread src/librustdoc/formats/mod.rs Resolved
@GuillaumeGomez

Copy link
Copy Markdown
Member Author

Done!

pub type X = Foo<i32>;

//@ has 'foo/struct.Bar.html'
// FIXME: Only `get_i32` should be listed, this is a bug.

@Urgau Urgau Nov 5, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't enough the code, could explain both are listed? and how prevalent this pattern is?

View changes since the review

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's because the type normalization is incomplete. I didn't look into it in details yet as the PR is already way too big.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand but showing false information is not great, I would prefer to not show enough rather than too much (it's still false but I think less so).

As I understand this is only gonna impact impls for concrete types of a generic type, is that right? If it's only this case then it's probably not much, my feel is that most use-case do impl<T> rather than specific types.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I couldn't reproduce it in other contexts than type aliases. And once this PR is fixed, first thing I do is fixing that bug.

@Urgau Urgau left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright, 1.102.0 just branched off, that gives us a full 6 weeks of testing.

View changes since this review

@Urgau

Urgau commented Nov 7, 2026

Copy link
Copy Markdown
Member

@bors r+ rollup

@rust-bors

rust-bors Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

📌 Commit dc5ab20 has been approved by Urgau

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 7, 2026
Zalathar added a commit to Zalathar/rust that referenced this pull request Nov 7, 2026
…=Urgau

[rustdoc] Render `Deref` methods on aliased items

Fixes rust-lang#134868.
Fixes rust-lang#24686.

The biggest issue was to make it work only for the matching aliased type generics. Luckily for me, it was already done in `write_shared.rs` (where we generate the JS file containing the impls that we then put into the generated web pages, which makes me wonder why we don't put that directly into the page by default, but debate for another day...).

r? @lolbinarycat
rust-bors Bot pushed a commit that referenced this pull request Nov 7, 2026
Rollup of 5 pull requests

Successful merges:

 - #164784 (Introduce OptimizationObjective and fix the entry shim's size attributes)
 - #147696 (Implement `bit` and `set_bit` for integral types.)
 - #163202 (nuttx: use updated pollfd definition)
 - #163571 ([rustdoc] Render `Deref` methods on aliased items)
 - #165482 (apply `-Zcrate-attr` attributes before the crate attributes)
Zalathar added a commit to Zalathar/rust that referenced this pull request Nov 7, 2026
…=Urgau

[rustdoc] Render `Deref` methods on aliased items

Fixes rust-lang#134868.
Fixes rust-lang#24686.

The biggest issue was to make it work only for the matching aliased type generics. Luckily for me, it was already done in `write_shared.rs` (where we generate the JS file containing the impls that we then put into the generated web pages, which makes me wonder why we don't put that directly into the page by default, but debate for another day...).

r? @lolbinarycat
@Zalathar

Zalathar commented Nov 7, 2026

Copy link
Copy Markdown
Member

@bors r-
@bors try jobs=dist-x86_64-linux-alt

@rust-bors rust-bors Bot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Nov 7, 2026
@rust-bors

rust-bors Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved.

This PR was contained in a rollup (#165591), which was unapproved.

View changes since this unapproval

rust-bors Bot pushed a commit that referenced this pull request Nov 7, 2026
[rustdoc] Render `Deref` methods on aliased items


try-job: dist-x86_64-linux-alt
@rust-bors

This comment has been minimized.

@rust-bors

rust-bors Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 505fffa failed: CI. Failed job:

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job dist-x86_64-linux-alt failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   9:     0x797329d22ef6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
  10:     0x797329d4a071 - std[617be2ca0a6fd877]::panicking::default_hook
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:316:9
  11:     0x797325e11526 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
  12:     0x797325e11526 - rustc_driver_impl[da70d996f04aeb35]::install_ice_hook::{closure#1}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_driver_impl/src/lib.rs:1499:17
  13:     0x797325e11526 - <alloc[2e1b2a31b91974c5]::boxed::Box<rustc_driver_impl[da70d996f04aeb35]::install_ice_hook::{closure#1}> as core[a373ad73a504971]::ops::function::Fn<(&dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send, &std[617be2ca0a6fd877]::panic::PanicHookInfo)>>::call
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
  14:     0x797325e11526 - std[617be2ca0a6fd877]::panicking::update_hook::<alloc[2e1b2a31b91974c5]::boxed::Box<rustc_driver_impl[da70d996f04aeb35]::install_ice_hook::{closure#1}>>::{closure#0}
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:232:47
  15:     0x797329d4a3d2 - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn for<'a, 'b> core[a373ad73a504971]::ops::function::Fn<(&'a std[617be2ca0a6fd877]::panic::PanicHookInfo<'b>,), Output = ()> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::Fn<(&std[617be2ca0a6fd877]::panic::PanicHookInfo,)>>::call
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2328:9
  16:     0x797329d4a3d2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:819:13
  17:     0x797329d22fa2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
  18:     0x797329d1a569 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
  19:     0x797329d248bd - __rustc[ea4f61d10b84890b]::rust_begin_unwind
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
  20:     0x797329d9e54c - core[a373ad73a504971]::panicking::panic_fmt
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
  21:     0x797328f18c26 - rustc_metadata[5faa328505b9c7e9]::rmeta::decoder::cstore_impl::provide_extern::type_of::{closure#1}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs:107:47
  22:     0x797328fd3158 - <core[a373ad73a504971]::option::Option<rustc_type_ir[b44bc881391fd15f]::binder::EarlyBinder<rustc_middle[4d9eadfbbd7a5f6c]::ty::context::TyCtxt, rustc_middle[4d9eadfbbd7a5f6c]::ty::Ty>> as rustc_metadata[5faa328505b9c7e9]::rmeta::decoder::cstore_impl::ProcessQueryValue<rustc_type_ir[b44bc881391fd15f]::binder::EarlyBinder<rustc_middle[4d9eadfbbd7a5f6c]::ty::context::TyCtxt, rustc_middle[4d9eadfbbd7a5f6c]::ty::Ty>>>::process_decoded::<rustc_metadata[5faa328505b9c7e9]::rmeta::decoder::cstore_impl::provide_extern::type_of::{closure#1}>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs:54:52
  23:     0x797328fd3158 - rustc_metadata[5faa328505b9c7e9]::rmeta::decoder::cstore_impl::provide_extern::type_of
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs:107:22
  24:     0x7973282eb2d7 - rustc_query_impl[d710f2d3ad73e789]::query_vtables::type_of::invoke_provider_fn::__rust_begin_short_backtrace
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_query_impl/src/query_vtables.rs:126:29
  25:     0x79732809c2d5 - rustc_query_impl[d710f2d3ad73e789]::execution::execute_job_non_incr::<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_query_impl/src/execution.rs:452:59
  26:     0x79732809c2d5 - rustc_middle[4d9eadfbbd7a5f6c]::ty::context::tls::enter_context::<rustc_query_impl[d710f2d3ad73e789]::execution::execute_job_non_incr<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}, rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/ty/context/tls.rs:56:9
  27:     0x79732809c2d5 - <std[617be2ca0a6fd877]::thread::local::LocalKey<core[a373ad73a504971]::cell::Cell<*const ()>>>::try_with::<rustc_middle[4d9eadfbbd7a5f6c]::ty::context::tls::enter_context<rustc_query_impl[d710f2d3ad73e789]::execution::execute_job_non_incr<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}, rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}, rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/local.rs:463:12
  28:     0x79732809c2d5 - <std[617be2ca0a6fd877]::thread::local::LocalKey<core[a373ad73a504971]::cell::Cell<*const ()>>>::with::<rustc_middle[4d9eadfbbd7a5f6c]::ty::context::tls::enter_context<rustc_query_impl[d710f2d3ad73e789]::execution::execute_job_non_incr<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}, rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}, rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/local.rs:427:20
  29:     0x79732809c2d5 - rustc_middle[4d9eadfbbd7a5f6c]::ty::context::tls::enter_context::<rustc_query_impl[d710f2d3ad73e789]::execution::execute_job_non_incr<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}, rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/ty/context/tls.rs:53:9
  30:     0x79732809c2d5 - rustc_query_impl[d710f2d3ad73e789]::execution::start_query::<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[d710f2d3ad73e789]::execution::execute_job_non_incr<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}>::{closure#0}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_query_impl/src/execution.rs:436:9
  31:     0x79732809c2d5 - rustc_middle[4d9eadfbbd7a5f6c]::ty::context::tls::with_context::<rustc_query_impl[d710f2d3ad73e789]::execution::start_query<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[d710f2d3ad73e789]::execution::execute_job_non_incr<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}>::{closure#0}, rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/ty/context/tls.rs:86:36
  32:     0x79732809c2d5 - rustc_middle[4d9eadfbbd7a5f6c]::ty::context::tls::with_context_opt::<rustc_middle[4d9eadfbbd7a5f6c]::ty::context::tls::with_context<rustc_query_impl[d710f2d3ad73e789]::execution::start_query<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[d710f2d3ad73e789]::execution::execute_job_non_incr<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}>::{closure#0}, rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>::{closure#0}, rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/ty/context/tls.rs:75:18
  33:     0x79732809c2d5 - rustc_middle[4d9eadfbbd7a5f6c]::ty::context::tls::with_context::<rustc_query_impl[d710f2d3ad73e789]::execution::start_query<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[d710f2d3ad73e789]::execution::execute_job_non_incr<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}>::{closure#0}, rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/ty/context/tls.rs:86:5
  34:     0x79732809c2d5 - rustc_query_impl[d710f2d3ad73e789]::execution::start_query::<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>, rustc_query_impl[d710f2d3ad73e789]::execution::execute_job_non_incr<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>::{closure#0}>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_query_impl/src/execution.rs:423:5
  35:     0x79732809c2d5 - rustc_query_impl[d710f2d3ad73e789]::execution::execute_job_non_incr::<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_query_impl/src/execution.rs:452:17
  36:     0x79732809c2d5 - rustc_query_impl[d710f2d3ad73e789]::execution::try_execute_query::<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>, false>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_query_impl/src/execution.rs:323:17
  37:     0x7973282eb5b3 - rustc_query_impl[d710f2d3ad73e789]::execution::execute_query_non_incr_inner::<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_query_impl/src/execution.rs:637:5
  38:     0x7973282eb5b3 - rustc_query_impl[d710f2d3ad73e789]::query_vtables::type_of::execute_query_non_incr::__rust_end_short_backtrace
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_query_impl/src/query_vtables.rs:94:30
  39:     0x5f91ddb27be7 - rustc_middle[4d9eadfbbd7a5f6c]::query::calls::query_get_at::<rustc_middle[4d9eadfbbd7a5f6c]::query::caches::DefIdCache<rustc_middle[4d9eadfbbd7a5f6c]::query::erase::ErasedData<[u8; 8usize]>>>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/query/calls.rs:154:17
  40:     0x5f91ddb27be7 - <rustc_middle[4d9eadfbbd7a5f6c]::query::calls::TyCtxtAt>::type_of::<rustc_span[6509bf7f7db7b863]::def_id::DefId>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/query/query_api.rs:289:61
  41:     0x5f91ddb27be7 - <rustc_middle[4d9eadfbbd7a5f6c]::ty::context::TyCtxt>::type_of::<rustc_span[6509bf7f7db7b863]::def_id::DefId>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/query/query_api.rs:279:39
  42:     0x5f91ddb27be7 - rustdoc[f44c5580177d4946]::clean::types::impl_may_apply_to_type_alias
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/clean/types.rs:1362:24
  43:     0x5f91dd9dda9d - <rustdoc[f44c5580177d4946]::clean::types::Type>::is_doc_subtype_of::{closure#1}::{closure#0}
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/clean/types.rs:1505:70
  44:     0x5f91dd9dda9d - core[a373ad73a504971]::iter::traits::iterator::Iterator::all::check::<(&rustdoc[f44c5580177d4946]::clean::types::Type, &rustdoc[f44c5580177d4946]::clean::types::Type), <rustdoc[f44c5580177d4946]::clean::types::Type>::is_doc_subtype_of::{closure#1}::{closure#0}>::{closure#0}
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/traits/iterator.rs:2851:20
  45:     0x5f91dd9dda9d - <core[a373ad73a504971]::iter::adapters::zip::Zip<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<core[a373ad73a504971]::slice::iter::Iter<rustdoc[f44c5580177d4946]::clean::types::GenericArg>, <rustdoc[f44c5580177d4946]::clean::types::Path>::generics::{closure#0}::{closure#0}>, core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<core[a373ad73a504971]::slice::iter::Iter<rustdoc[f44c5580177d4946]::clean::types::GenericArg>, <rustdoc[f44c5580177d4946]::clean::types::Path>::generics::{closure#0}::{closure#0}>> as core[a373ad73a504971]::iter::traits::iterator::Iterator>::try_fold::<(), core[a373ad73a504971]::iter::traits::iterator::Iterator::all::check<(&rustdoc[f44c5580177d4946]::clean::types::Type, &rustdoc[f44c5580177d4946]::clean::types::Type), <rustdoc[f44c5580177d4946]::clean::types::Type>::is_doc_subtype_of::{closure#1}::{closure#0}>::{closure#0}, core[a373ad73a504971]::ops::control_flow::ControlFlow<()>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/traits/iterator.rs:2504:21
  46:     0x5f91dd9dda9d - <core[a373ad73a504971]::iter::adapters::zip::Zip<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<core[a373ad73a504971]::slice::iter::Iter<rustdoc[f44c5580177d4946]::clean::types::GenericArg>, <rustdoc[f44c5580177d4946]::clean::types::Path>::generics::{closure#0}::{closure#0}>, core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<core[a373ad73a504971]::slice::iter::Iter<rustdoc[f44c5580177d4946]::clean::types::GenericArg>, <rustdoc[f44c5580177d4946]::clean::types::Path>::generics::{closure#0}::{closure#0}>> as core[a373ad73a504971]::iter::traits::iterator::Iterator>::all::<<rustdoc[f44c5580177d4946]::clean::types::Type>::is_doc_subtype_of::{closure#1}::{closure#0}>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/traits/iterator.rs:2854:14
  47:     0x5f91dd9dda9d - <rustdoc[f44c5580177d4946]::clean::types::Type>::is_doc_subtype_of::{closure#1}
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/clean/types.rs:1505:52
  48:     0x5f91ddab854e - <core[a373ad73a504971]::option::Option<(core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<core[a373ad73a504971]::slice::iter::Iter<rustdoc[f44c5580177d4946]::clean::types::GenericArg>, <rustdoc[f44c5580177d4946]::clean::types::Path>::generics::{closure#0}::{closure#0}>, core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<core[a373ad73a504971]::slice::iter::Iter<rustdoc[f44c5580177d4946]::clean::types::GenericArg>, <rustdoc[f44c5580177d4946]::clean::types::Path>::generics::{closure#0}::{closure#0}>)>>::map::<bool, <rustdoc[f44c5580177d4946]::clean::types::Type>::is_doc_subtype_of::{closure#1}>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/option.rs:1165:29
  49:     0x5f91ddab854e - <rustdoc[f44c5580177d4946]::clean::types::Type>::is_doc_subtype_of
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/clean/types.rs:1505:26
  50:     0x5f91ddb17f5a - rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#0}
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/html/render/mod.rs:1703:23
  51:     0x5f91ddb17f5a - core[a373ad73a504971]::iter::adapters::filter::filter_try_fold::<&rustdoc[f44c5580177d4946]::clean::types::Impl, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#0}, core[a373ad73a504971]::iter::adapters::filter_map::filter_map_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Impl, &rustdoc[f44c5580177d4946]::clean::types::Path, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#1}, core[a373ad73a504971]::iter::adapters::filter_map::filter_map_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Path, &rustdoc[f44c5580177d4946]::clean::types::Trait, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#2}, core[a373ad73a504971]::iter::traits::iterator::Iterator::any::check<&rustdoc[f44c5580177d4946]::clean::types::Trait, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#3}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/adapters/filter.rs:86:25
  52:     0x5f91ddb17f5a - core[a373ad73a504971]::iter::adapters::map::map_try_fold::<&rustdoc[f44c5580177d4946]::formats::Impl, &rustdoc[f44c5580177d4946]::clean::types::Impl, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, <rustdoc[f44c5580177d4946]::formats::Impl>::inner_impl, core[a373ad73a504971]::iter::adapters::filter::filter_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Impl, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#0}, core[a373ad73a504971]::iter::adapters::filter_map::filter_map_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Impl, &rustdoc[f44c5580177d4946]::clean::types::Path, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#1}, core[a373ad73a504971]::iter::adapters::filter_map::filter_map_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Path, &rustdoc[f44c5580177d4946]::clean::types::Trait, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#2}, core[a373ad73a504971]::iter::traits::iterator::Iterator::any::check<&rustdoc[f44c5580177d4946]::clean::types::Trait, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#3}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/adapters/map.rs:95:21
  53:     0x5f91ddb17f5a - <core[a373ad73a504971]::slice::iter::Iter<rustdoc[f44c5580177d4946]::formats::Impl> as core[a373ad73a504971]::iter::traits::iterator::Iterator>::try_fold::<(), core[a373ad73a504971]::iter::adapters::map::map_try_fold<&rustdoc[f44c5580177d4946]::formats::Impl, &rustdoc[f44c5580177d4946]::clean::types::Impl, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, <rustdoc[f44c5580177d4946]::formats::Impl>::inner_impl, core[a373ad73a504971]::iter::adapters::filter::filter_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Impl, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#0}, core[a373ad73a504971]::iter::adapters::filter_map::filter_map_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Impl, &rustdoc[f44c5580177d4946]::clean::types::Path, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#1}, core[a373ad73a504971]::iter::adapters::filter_map::filter_map_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Path, &rustdoc[f44c5580177d4946]::clean::types::Trait, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#2}, core[a373ad73a504971]::iter::traits::iterator::Iterator::any::check<&rustdoc[f44c5580177d4946]::clean::types::Trait, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#3}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}, core[a373ad73a504971]::ops::control_flow::ControlFlow<()>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/traits/iterator.rs:2504:21
  54:     0x5f91ddb17f5a - <core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::slice::iter::Iter<rustdoc[f44c5580177d4946]::formats::Impl>, <rustdoc[f44c5580177d4946]::formats::Impl>::inner_impl> as core[a373ad73a504971]::iter::traits::iterator::Iterator>::try_fold::<(), core[a373ad73a504971]::iter::adapters::filter::filter_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Impl, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#0}, core[a373ad73a504971]::iter::adapters::filter_map::filter_map_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Impl, &rustdoc[f44c5580177d4946]::clean::types::Path, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#1}, core[a373ad73a504971]::iter::adapters::filter_map::filter_map_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Path, &rustdoc[f44c5580177d4946]::clean::types::Trait, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#2}, core[a373ad73a504971]::iter::traits::iterator::Iterator::any::check<&rustdoc[f44c5580177d4946]::clean::types::Trait, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#3}>::{closure#0}>::{closure#0}>::{closure#0}>::{closure#0}, core[a373ad73a504971]::ops::control_flow::ControlFlow<()>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/adapters/map.rs:121:19
  55:     0x5f91ddb17f5a - <core[a373ad73a504971]::iter::adapters::filter::Filter<core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::slice::iter::Iter<rustdoc[f44c5580177d4946]::formats::Impl>, <rustdoc[f44c5580177d4946]::formats::Impl>::inner_impl>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#0}> as core[a373ad73a504971]::iter::traits::iterator::Iterator>::try_fold::<(), core[a373ad73a504971]::iter::adapters::filter_map::filter_map_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Impl, &rustdoc[f44c5580177d4946]::clean::types::Path, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#1}, core[a373ad73a504971]::iter::adapters::filter_map::filter_map_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Path, &rustdoc[f44c5580177d4946]::clean::types::Trait, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#2}, core[a373ad73a504971]::iter::traits::iterator::Iterator::any::check<&rustdoc[f44c5580177d4946]::clean::types::Trait, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#3}>::{closure#0}>::{closure#0}>::{closure#0}, core[a373ad73a504971]::ops::control_flow::ControlFlow<()>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/adapters/filter.rs:157:19
  56:     0x5f91ddb17f5a - <core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<core[a373ad73a504971]::iter::adapters::filter::Filter<core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::slice::iter::Iter<rustdoc[f44c5580177d4946]::formats::Impl>, <rustdoc[f44c5580177d4946]::formats::Impl>::inner_impl>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#0}>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#1}> as core[a373ad73a504971]::iter::traits::iterator::Iterator>::try_fold::<(), core[a373ad73a504971]::iter::adapters::filter_map::filter_map_try_fold<&rustdoc[f44c5580177d4946]::clean::types::Path, &rustdoc[f44c5580177d4946]::clean::types::Trait, (), core[a373ad73a504971]::ops::control_flow::ControlFlow<()>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#2}, core[a373ad73a504971]::iter::traits::iterator::Iterator::any::check<&rustdoc[f44c5580177d4946]::clean::types::Trait, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#3}>::{closure#0}>::{closure#0}, core[a373ad73a504971]::ops::control_flow::ControlFlow<()>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/adapters/filter_map.rs:138:19
  57:     0x5f91ddb17f5a - <core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<core[a373ad73a504971]::iter::adapters::filter::Filter<core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::slice::iter::Iter<rustdoc[f44c5580177d4946]::formats::Impl>, <rustdoc[f44c5580177d4946]::formats::Impl>::inner_impl>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#0}>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#1}>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#2}> as core[a373ad73a504971]::iter::traits::iterator::Iterator>::try_fold::<(), core[a373ad73a504971]::iter::traits::iterator::Iterator::any::check<&rustdoc[f44c5580177d4946]::clean::types::Trait, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#3}>::{closure#0}, core[a373ad73a504971]::ops::control_flow::ControlFlow<()>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/adapters/filter_map.rs:138:19
  58:     0x5f91ddb17f5a - <core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<core[a373ad73a504971]::iter::adapters::filter::Filter<core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::slice::iter::Iter<rustdoc[f44c5580177d4946]::formats::Impl>, <rustdoc[f44c5580177d4946]::formats::Impl>::inner_impl>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#0}>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#1}>, rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#2}> as core[a373ad73a504971]::iter::traits::iterator::Iterator>::any::<rustdoc[f44c5580177d4946]::html::render::notable_traits_button::{closure#3}>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/traits/iterator.rs:2909:14
  59:     0x5f91ddb17f5a - rustdoc[f44c5580177d4946]::html::render::notable_traits_button
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/html/render/mod.rs:1707:10
  60:     0x5f91dd9ecea0 - rustdoc[f44c5580177d4946]::html::render::assoc_fn::{closure#0}
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/html/render/mod.rs:1201:30
  61:     0x5f91dd9ecea0 - <core[a373ad73a504971]::fmt::builders::FromFn<rustdoc[f44c5580177d4946]::html::render::assoc_fn::{closure#0}> as core[a373ad73a504971]::fmt::Display>::fmt
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/builders.rs:1445:9
  62:     0x5f91dd9ecea0 - rustdoc[f44c5580177d4946]::html::render::render_assoc_item::{closure#0}
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/html/render/mod.rs:1316:72
  63:     0x797329d9daba - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
  64:     0x797329d9daba - core[a373ad73a504971]::fmt::write
  65:     0x5f91dd8281ac - <&mut alloc[2e1b2a31b91974c5]::string::String as core[a373ad73a504971]::fmt::Write::write_fmt::SpecWriteFmt>::spec_write_fmt
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/mod.rs:238:21
  66:     0x5f91dd8281ac - <alloc[2e1b2a31b91974c5]::string::String as core[a373ad73a504971]::fmt::Write>::write_fmt
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/mod.rs:243:14
  67:     0x5f91dd8281ac - <&mut alloc[2e1b2a31b91974c5]::string::String as core[a373ad73a504971]::fmt::Write>::write_fmt
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/mod.rs:258:18
  68:     0x5f91dd8281ac - <either[2b2c0917d89b6e98]::Either<&mut alloc[2e1b2a31b91974c5]::string::String, &mut alloc[2e1b2a31b91974c5]::string::String> as core[a373ad73a504971]::fmt::Write>::write_fmt
                               at /cargo/registry/25cdd57fae9f0462/either-1.15.0/src/lib.rs:1396:40
  69:     0x5f91dd8281ac - rustdoc[f44c5580177d4946]::html::render::render_impl::{closure#0}::doc_impl_item::<&mut alloc[2e1b2a31b91974c5]::string::String, &mut alloc[2e1b2a31b91974c5]::string::String>
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/html/render/mod.rs:2036:21
  70:     0x5f91dd9ea056 - rustdoc[f44c5580177d4946]::html::render::render_impl::{closure#0}
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/html/render/mod.rs:2169:17
  71:     0x5f91ddbb926b - <core[a373ad73a504971]::fmt::builders::FromFn<rustdoc[f44c5580177d4946]::html::render::render_impl::{closure#0}> as core[a373ad73a504971]::fmt::Display>::fmt
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/builders.rs:1445:9
  72:     0x5f91ddbb926b - <core[a373ad73a504971]::fmt::builders::FromFn<rustdoc[f44c5580177d4946]::html::render::render_impl::{closure#0}> as alloc[2e1b2a31b91974c5]::string::SpecToString>::spec_to_string
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/string.rs:2987:9
  73:     0x5f91ddbb926b - <core[a373ad73a504971]::fmt::builders::FromFn<rustdoc[f44c5580177d4946]::html::render::render_impl::{closure#0}> as alloc[2e1b2a31b91974c5]::string::ToString>::to_string
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/string.rs:2966:9
  74:     0x5f91ddbb926b - <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/html/render/write_shared.rs:780:30
  75:     0x5f91ddbb926b - <&mut <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0} as core[a373ad73a504971]::ops::function::FnMut<(&rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl,)>>::call_mut
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:298:21
  76:     0x5f91ddbb926b - core[a373ad73a504971]::iter::traits::iterator::Iterator::find_map::check::<&rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasSerializableImpl, &mut <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}>::{closure#0}
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/traits/iterator.rs:3010:32
  77:     0x5f91ddbb926b - <indexmap[5319267646dacec5]::map::iter::Values<rustdoc[f44c5580177d4946]::clean::types::ItemId, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl> as core[a373ad73a504971]::iter::traits::iterator::Iterator>::try_fold::<(), core[a373ad73a504971]::iter::traits::iterator::Iterator::find_map::check<&rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasSerializableImpl, &mut <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}>::{closure#0}, core[a373ad73a504971]::ops::control_flow::ControlFlow<rustdoc[f44c5580177d4946]::html::render::write_shared::AliasSerializableImpl>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/traits/iterator.rs:2504:21
  78:     0x5f91ddbb926b - <indexmap[5319267646dacec5]::map::iter::Values<rustdoc[f44c5580177d4946]::clean::types::ItemId, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl> as core[a373ad73a504971]::iter::traits::iterator::Iterator>::find_map::<rustdoc[f44c5580177d4946]::html::render::write_shared::AliasSerializableImpl, &mut <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/traits/iterator.rs:3016:14
  79:     0x5f91ddbb926b - <core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<indexmap[5319267646dacec5]::map::iter::Values<rustdoc[f44c5580177d4946]::clean::types::ItemId, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}> as core[a373ad73a504971]::iter::traits::iterator::Iterator>::next
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/adapters/filter_map.rs:64:19
  80:     0x5f91ddbb926b - <core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<indexmap[5319267646dacec5]::map::iter::Values<rustdoc[f44c5580177d4946]::clean::types::ItemId, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#1}> as core[a373ad73a504971]::iter::traits::iterator::Iterator>::next
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/iter/adapters/map.rs:107:19
  81:     0x5f91ddab01e7 - <alloc[2e1b2a31b91974c5]::vec::Vec<rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::extend_desugared::<core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<indexmap[5319267646dacec5]::map::iter::Values<rustdoc[f44c5580177d4946]::clean::types::ItemId, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#1}>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/vec/mod.rs:4136:44
  82:     0x5f91ddab01e7 - <alloc[2e1b2a31b91974c5]::vec::Vec<rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson> as alloc[2e1b2a31b91974c5]::vec::spec_extend::SpecExtend<rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson, core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<indexmap[5319267646dacec5]::map::iter::Values<rustdoc[f44c5580177d4946]::clean::types::ItemId, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#1}>>>::spec_extend
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/vec/spec_extend.rs:18:14
  83:     0x5f91ddab01e7 - <alloc[2e1b2a31b91974c5]::vec::Vec<rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson> as alloc[2e1b2a31b91974c5]::vec::spec_from_iter_nested::SpecFromIterNested<rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson, core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<indexmap[5319267646dacec5]::map::iter::Values<rustdoc[f44c5580177d4946]::clean::types::ItemId, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#1}>>>::from_iter
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/vec/spec_from_iter_nested.rs:41:9
  84:     0x5f91ddab01e7 - <alloc[2e1b2a31b91974c5]::vec::Vec<rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson> as alloc[2e1b2a31b91974c5]::vec::spec_from_iter::SpecFromIter<rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson, core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<indexmap[5319267646dacec5]::map::iter::Values<rustdoc[f44c5580177d4946]::clean::types::ItemId, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#1}>>>::from_iter
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/vec/spec_from_iter.rs:33:9
  85:     0x5f91ddab01e7 - <alloc[2e1b2a31b91974c5]::vec::Vec<rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson> as core[a373ad73a504971]::iter::traits::collect::FromIterator<rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::from_iter::<core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<indexmap[5319267646dacec5]::map::iter::Values<rustdoc[f44c5580177d4946]::clean::types::ItemId, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#1}>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/vec/mod.rs:4031:9
  86:     0x5f91ddab01e7 - <core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<indexmap[5319267646dacec5]::map::iter::Values<rustdoc[f44c5580177d4946]::clean::types::ItemId, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#1}> as itertools[e8677f65507ee14d]::Itertools>::sorted_unstable_by::<<rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>::array_sorted<rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson, core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<indexmap[5319267646dacec5]::map::iter::Values<rustdoc[f44c5580177d4946]::clean::types::ItemId, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#1}>>::{closure#0}>
                               at /cargo/registry/25cdd57fae9f0462/itertools-0.15.0/src/lib.rs:3309:21
  87:     0x5f91ddab01e7 - <rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>::array_sorted::<rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson, core[a373ad73a504971]::iter::adapters::map::Map<core[a373ad73a504971]::iter::adapters::filter_map::FilterMap<indexmap[5319267646dacec5]::map::iter::Values<rustdoc[f44c5580177d4946]::clean::types::ItemId, rustdoc[f44c5580177d4946]::html::render::write_shared::AliasedTypeImpl>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#0}>, <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get::{closure#1}>>
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/html/render/ordered_json.rs:26:14
  88:     0x5f91ddab01e7 - <rustdoc[f44c5580177d4946]::html::render::write_shared::Part<rustdoc[f44c5580177d4946]::html::render::write_shared::TypeAlias, rustdoc[f44c5580177d4946]::html::render::ordered_json::OrderedJson>>::get
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/html/render/write_shared.rs:808:24
  89:     0x5f91ddb598f5 - rustdoc[f44c5580177d4946]::html::render::write_shared::write_shared
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/html/render/write_shared.rs:100:20
  90:     0x5f91dda86d7a - <rustdoc[f44c5580177d4946]::html::render::context::Context>::init
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/html/render/context.rs:633:13
  91:     0x5f91dd9d0351 - rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}::{closure#1}::{closure#0}
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/lib.rs:1056:29
  92:     0x5f91dd9d0351 - rustdoc[f44c5580177d4946]::formats::renderer::run_format::<rustdoc[f44c5580177d4946]::html::render::context::Context, rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}::{closure#1}::{closure#0}>::{closure#0}
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/formats/renderer.rs:113:17
  93:     0x5f91dd9d0351 - <rustc_data_structures[9c1274e23f0f5f81]::profiling::VerboseTimingGuard>::run::<core[a373ad73a504971]::result::Result<(rustdoc[f44c5580177d4946]::html::render::context::Context, rustdoc[f44c5580177d4946]::clean::types::Crate), rustdoc[f44c5580177d4946]::error::Error>, rustdoc[f44c5580177d4946]::formats::renderer::run_format<rustdoc[f44c5580177d4946]::html::render::context::Context, rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}::{closure#1}::{closure#0}>::{closure#0}>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_data_structures/src/profiling.rs:847:9
  94:     0x5f91dd9d0351 - rustdoc[f44c5580177d4946]::formats::renderer::run_format::<rustdoc[f44c5580177d4946]::html::render::context::Context, rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}::{closure#1}::{closure#0}>
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/formats/renderer.rs:113:10
  95:     0x5f91dd9d0351 - rustdoc[f44c5580177d4946]::run_renderer::<rustdoc[f44c5580177d4946]::html::render::context::Context, rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}::{closure#1}::{closure#0}>
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/lib.rs:767:11
  96:     0x5f91dd9d0351 - rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}::{closure#1}
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/lib.rs:1050:21
  97:     0x5f91dd9d0351 - <rustc_data_structures[9c1274e23f0f5f81]::profiling::VerboseTimingGuard>::run::<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}::{closure#1}>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_data_structures/src/profiling.rs:847:9
  98:     0x5f91dd9d0351 - <rustc_session[42a373dd17df3ca0]::session::Session>::time::<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}::{closure#1}>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_session/src/utils.rs:17:50
  99:     0x5f91dd9d0351 - rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/lib.rs:1049:52
 100:     0x5f91dd9c2814 - rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt::<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}::{closure#0}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_interface/src/passes.rs:1057:80
 101:     0x5f91dd9c2814 - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
 102:     0x5f91dd9c2814 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}::{closure#0}>, ()>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
 103:     0x5f91dd9c2814 - std[617be2ca0a6fd877]::panicking::catch_unwind::<(), core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}::{closure#0}>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
 104:     0x5f91dd9c2814 - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}::{closure#0}>, ()>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
 105:     0x5f91dd9c2814 - rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt::<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_interface/src/passes.rs:1057:23
 106:     0x5f91dd9c2814 - <rustc_middle[4d9eadfbbd7a5f6c]::ty::context::GlobalCtxt>::enter::<rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}, ()>::{closure#1}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/ty/context.rs:838:37
 107:     0x5f91dd9c2814 - rustc_middle[4d9eadfbbd7a5f6c]::ty::context::tls::enter_context::<<rustc_middle[4d9eadfbbd7a5f6c]::ty::context::GlobalCtxt>::enter<rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}, ()>::{closure#1}, ()>::{closure#0}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/ty/context/tls.rs:56:9
 108:     0x5f91dd9c2814 - <std[617be2ca0a6fd877]::thread::local::LocalKey<core[a373ad73a504971]::cell::Cell<*const ()>>>::try_with::<rustc_middle[4d9eadfbbd7a5f6c]::ty::context::tls::enter_context<<rustc_middle[4d9eadfbbd7a5f6c]::ty::context::GlobalCtxt>::enter<rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}, ()>::{closure#1}, ()>::{closure#0}, ()>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/local.rs:463:12
 109:     0x5f91dd9c2814 - <std[617be2ca0a6fd877]::thread::local::LocalKey<core[a373ad73a504971]::cell::Cell<*const ()>>>::with::<rustc_middle[4d9eadfbbd7a5f6c]::ty::context::tls::enter_context<<rustc_middle[4d9eadfbbd7a5f6c]::ty::context::GlobalCtxt>::enter<rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}, ()>::{closure#1}, ()>::{closure#0}, ()>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/local.rs:427:20
 110:     0x5f91dd9c2814 - rustc_middle[4d9eadfbbd7a5f6c]::ty::context::tls::enter_context::<<rustc_middle[4d9eadfbbd7a5f6c]::ty::context::GlobalCtxt>::enter<rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}, ()>::{closure#1}, ()>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/ty/context/tls.rs:53:9
 111:     0x5f91dd9c2814 - <rustc_middle[4d9eadfbbd7a5f6c]::ty::context::GlobalCtxt>::enter::<rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}, ()>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/ty/context.rs:838:9
 112:     0x5f91dd9c2814 - <rustc_middle[4d9eadfbbd7a5f6c]::ty::context::TyCtxt>::create_global_ctxt::<(), rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>::{closure#2}>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_middle/src/ty/context.rs:1035:13
 113:     0x5f91dd9c2814 - rustc_interface[980691b70ca8748e]::passes::create_and_enter_global_ctxt::<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}::{closure#0}>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_interface/src/passes.rs:1014:15
 114:     0x5f91dd9c2814 - rustdoc[f44c5580177d4946]::main_args::{closure#2}
                               at /rustc/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/src/librustdoc/lib.rs:1011:9
 115:     0x5f91dd9c2814 - rustc_interface[980691b70ca8748e]::interface::run_compiler::<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}::{closure#0}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_interface/src/interface.rs:512:80
 116:     0x5f91dd9c2814 - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
 117:     0x5f91dd9c2814 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}::{closure#0}>, ()>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
 118:     0x5f91dd9c2814 - std[617be2ca0a6fd877]::panicking::catch_unwind::<(), core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}::{closure#0}>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
 119:     0x5f91dd9c2814 - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}::{closure#0}>, ()>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
 120:     0x5f91dd9c2814 - rustc_interface[980691b70ca8748e]::interface::run_compiler::<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_interface/src/interface.rs:512:23
 121:     0x5f91dd8e61d0 - rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals::<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_interface/src/util.rs:264:17
 122:     0x5f91dd8e61d0 - rustc_interface[980691b70ca8748e]::util::run_in_thread_with_globals::<rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_interface/src/util.rs:221:24
 123:     0x5f91dd8e61d0 - <scoped_tls[4fe2c67cfe1ba0f5]::ScopedKey<rustc_span[6509bf7f7db7b863]::SessionGlobals>>::set::<rustc_interface[980691b70ca8748e]::util::run_in_thread_with_globals<rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}, ()>
                               at /cargo/registry/25cdd57fae9f0462/scoped-tls-1.0.1/src/lib.rs:137:9
 124:     0x5f91dd8e61d0 - rustc_span[6509bf7f7db7b863]::create_session_globals_then::<(), rustc_interface[980691b70ca8748e]::util::run_in_thread_with_globals<rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}::{closure#0}>
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_span/src/lib.rs:160:21
 125:     0x5f91dd8e61d0 - rustc_interface[980691b70ca8748e]::util::run_in_thread_with_globals::<rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}
                               at /rustc-dev/505fffa3fc772e6aa67bf12379bb5e50774ea4f5/compiler/rustc_interface/src/util.rs:217:17
 126:     0x5f91dd8e61d0 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[980691b70ca8748e]::util::run_in_thread_with_globals<rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:166:18
 127:     0x5f91dda01e9c - std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked::<rustc_interface[980691b70ca8748e]::util::run_in_thread_with_globals<rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/lifecycle.rs:70:13
 128:     0x5f91dda01e9c - <core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<rustc_interface[980691b70ca8748e]::util::run_in_thread_with_globals<rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panic/unwind_safe.rs:275:9
 129:     0x5f91dda01e9c - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<rustc_interface[980691b70ca8748e]::util::run_in_thread_with_globals<rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>, ()>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
 130:     0x5f91dda01e9c - std[617be2ca0a6fd877]::panicking::catch_unwind::<(), core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<rustc_interface[980691b70ca8748e]::util::run_in_thread_with_globals<rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
 131:     0x5f91dda01e9c - std[617be2ca0a6fd877]::panic::catch_unwind::<core[a373ad73a504971]::panic::unwind_safe::AssertUnwindSafe<std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<rustc_interface[980691b70ca8748e]::util::run_in_thread_with_globals<rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}::{closure#0}>, ()>
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
 132:     0x5f91dda01e9c - std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked::<rustc_interface[980691b70ca8748e]::util::run_in_thread_with_globals<rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1}
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/thread/lifecycle.rs:68:26
 133:     0x5f91dda01e9c - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<rustc_interface[980691b70ca8748e]::util::run_in_thread_with_globals<rustc_interface[980691b70ca8748e]::util::run_in_thread_pool_with_globals<rustc_interface[980691b70ca8748e]::interface::run_compiler<(), rustdoc[f44c5580177d4946]::main_args::{closure#2}>::{closure#2}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:250:5
 134:     0x797329d5562f - <alloc[2e1b2a31b91974c5]::boxed::Box<dyn core[a373ad73a504971]::ops::function::FnOnce<(), Output = ()> + core[a373ad73a504971]::marker::Send> as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/alloc/src/boxed.rs:2314:9
 135:     0x797329d5562f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
                               at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/thread/unix.rs:127:17
---
warning: the ICE couldn't be written to `/checkout/rustc-ice-2026-11-07T13_34_22-87583.txt`: Read-only file system (os error 30)

note: rustc 1.102.0-nightly (505fffa3f 2026-11-07) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib -Z unstable-options -Z unstable-options -Z annotate-moves -Z unstable-options -C linker-features=+lld -C link-self-contained=-linker -Z unstable-options -Z normalize-docs -Z crate-attr=warn(rust_2018_idioms) -Z force-unstable-if-unmarked -Z crate-attr=allow(internal_features) -Z crate-attr=doc(rust_logo) -Z crate-attr=doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/") -Z crate-attr=feature(rustdoc_internals)

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [type_of] computing type of `core::error::Error`

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Methods from Deref<Target=[T]> doesnt appear for type aliases rustdoc: Methods from Deref<Target = T<U>> is imprecise (contains false positives)

6 participants