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 {