Skip to content

Commit 6fea3a4

Browse files
committed
use a HashSet instead of IndexSet for cache of types with notable trait impls
iteration order shouldn't matter
1 parent d0cc22d commit 6fea3a4

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

src/librustdoc/html/render/context.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use std::path::{Path, PathBuf};
55
use std::sync::mpsc::{Receiver, channel};
66

77
use rinja::Template;
8-
use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexMap, FxIndexSet};
8+
use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexMap};
99
use rustc_hir::def_id::{DefIdMap, LOCAL_CRATE};
1010
use rustc_middle::ty::TyCtxt;
1111
use rustc_session::Session;
@@ -60,7 +60,7 @@ pub(crate) struct Context<'tcx> {
6060
/// [#82381]: https://github.com/rust-lang/rust/issues/82381
6161
pub(crate) shared: SharedContext<'tcx>,
6262
/// Collection of all types with notable traits referenced in the current module.
63-
pub(crate) types_with_notable_traits: RefCell<FxIndexSet<clean::Type>>,
63+
pub(crate) types_with_notable_traits: RefCell<FxHashSet<clean::Type>>,
6464
/// Contains information that needs to be saved and reset after rendering an item which is
6565
/// not a module.
6666
pub(crate) info: ContextInfo,
@@ -579,7 +579,7 @@ impl<'tcx> FormatRenderer<'tcx> for Context<'tcx> {
579579
id_map: RefCell::new(id_map),
580580
deref_id_map: Default::default(),
581581
shared: scx,
582-
types_with_notable_traits: RefCell::new(FxIndexSet::default()),
582+
types_with_notable_traits: RefCell::default(),
583583
info: ContextInfo::new(include_sources),
584584
};
585585

src/librustdoc/html/render/print_item.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -278,11 +278,10 @@ pub(super) fn print_item(cx: &Context<'_>, item: &clean::Item, buf: &mut Buffer)
278278
// Render notable-traits.js used for all methods in this module.
279279
let mut types_with_notable_traits = cx.types_with_notable_traits.borrow_mut();
280280
if !types_with_notable_traits.is_empty() {
281-
write!(
282-
buf,
283-
r#"<script type="text/json" id="notable-traits-data">{}</script>"#,
281+
write!(buf, r#"<script type="text/json" id="notable-traits-data">{}</script>"#, {
282+
#[allow(rustc::potential_query_instability)]
284283
notable_traits_json(types_with_notable_traits.iter(), cx)
285-
);
284+
});
286285
types_with_notable_traits.clear();
287286
}
288287
}

0 commit comments

Comments
 (0)