diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index e7fe4de8d04a3..3372c9d4807ad 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -343,13 +343,33 @@ thread_local!(static CACHE_KEY: RefCell> = Default::default());
thread_local!(pub static CURRENT_LOCATION_KEY: RefCell> =
RefCell::new(Vec::new()));
thread_local!(static USED_ID_MAP: RefCell> =
- RefCell::new(HashMap::new()));
+ RefCell::new(init_ids()));
+
+fn init_ids() -> HashMap {
+ [
+ "main",
+ "search",
+ "help",
+ "TOC",
+ "render-detail",
+ "associated-types",
+ "associated-const",
+ "required-methods",
+ "provided-methods",
+ "implementors",
+ "implementors-list",
+ "methods",
+ "deref-methods",
+ "implementations",
+ "derived_implementations"
+ ].into_iter().map(|id| (String::from(*id), 1)).collect::>()
+}
/// This method resets the local table of used ID attributes. This is typically
/// used at the beginning of rendering an entire HTML page to reset from the
/// previous state (if any).
pub fn reset_ids() {
- USED_ID_MAP.with(|s| s.borrow_mut().clear());
+ USED_ID_MAP.with(|s| *s.borrow_mut() = init_ids());
}
pub fn with_unique_id T>(candidate: String, f: F) -> T {