diff --git a/src/liballoc/arc.rs b/src/liballoc/arc.rs index f5980f4599e45..e52a0216dd329 100644 --- a/src/liballoc/arc.rs +++ b/src/liballoc/arc.rs @@ -60,7 +60,7 @@ const MAX_REFCOUNT: usize = (isize::MAX) as usize; /// ## Thread Safety /// /// Unlike [`Rc`], `Arc` uses atomic operations for its reference -/// counting This means that it is thread-safe. The disadvantage is that +/// counting. This means that it is thread-safe. The disadvantage is that /// atomic operations are more expensive than ordinary memory accesses. If you /// are not sharing reference-counted values between threads, consider using /// [`Rc`] for lower overhead. [`Rc`] is a safe default, because the diff --git a/src/liballoc/lib.rs b/src/liballoc/lib.rs index 6399be98cd519..021395d0c824a 100644 --- a/src/liballoc/lib.rs +++ b/src/liballoc/lib.rs @@ -96,6 +96,7 @@ #![feature(dropck_eyepatch)] #![feature(exact_size_is_empty)] #![feature(fmt_internals)] +#![feature(fn_must_use)] #![feature(from_ref)] #![feature(fundamental)] #![feature(lang_items)] diff --git a/src/liballoc/str.rs b/src/liballoc/str.rs index cac94edf64947..0cbe65db53cad 100644 --- a/src/liballoc/str.rs +++ b/src/liballoc/str.rs @@ -207,6 +207,7 @@ impl str { /// let s = "this is old"; /// assert_eq!(s, s.replace("cookie monster", "little lamb")); /// ``` + #[must_use] #[stable(feature = "rust1", since = "1.0.0")] #[inline] pub fn replace<'a, P: Pattern<'a>>(&'a self, from: P, to: &str) -> String { @@ -246,6 +247,7 @@ impl str { /// let s = "this is old"; /// assert_eq!(s, s.replacen("cookie monster", "little lamb", 10)); /// ``` + #[must_use] #[stable(feature = "str_replacen", since = "1.16.0")] pub fn replacen<'a, P: Pattern<'a>>(&'a self, pat: P, to: &str, count: usize) -> String { // Hope to reduce the times of re-allocation diff --git a/src/librustc_metadata/schema.rs b/src/librustc_metadata/schema.rs index 5d6db1abe7b68..ddeb797f1bef5 100644 --- a/src/librustc_metadata/schema.rs +++ b/src/librustc_metadata/schema.rs @@ -373,9 +373,10 @@ impl<'a, 'gcx> HashStable> for EntryKind<'gcx> { EntryKind::AssociatedType(associated_container) => { associated_container.hash_stable(hcx, hasher); } - EntryKind::AssociatedConst(associated_container, qualif, _) => { + EntryKind::AssociatedConst(associated_container, qualif, ref const_data) => { associated_container.hash_stable(hcx, hasher); qualif.hash_stable(hcx, hasher); + const_data.hash_stable(hcx, hasher); } } } diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index ef8bf2244d977..58a57f43d3745 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -40,6 +40,8 @@ "union", "foreigntype"]; + var search_input = document.getElementsByClassName('search-input')[0]; + // On the search screen, so you remain on the last tab you opened. // // 0 for "In Names" @@ -411,8 +413,8 @@ // but only if the input bar is empty. This avoid the obnoxious issue // where you start trying to do a search, and the index loads, and // suddenly your search is gone! - if (document.getElementsByClassName("search-input")[0].value === "") { - document.getElementsByClassName("search-input")[0].value = params.search || ''; + if (search_input.value === "") { + search_input.value = params.search || ''; } /** @@ -1118,7 +1120,6 @@ }); }); - var search_input = document.getElementsByClassName('search-input')[0]; search_input.onkeydown = function(e) { // "actives" references the currently highlighted item in each search tab. // Each array in "actives" represents a tab. @@ -1169,7 +1170,7 @@ // Does nothing, it's just to avoid losing "focus" on the highlighted element. } else if (e.which === 27) { // escape removeClass(actives[currentTab][0], 'highlighted'); - document.getElementsByClassName('search-input')[0].value = ''; + search_input.value = ''; defocusSearchBar(); } else if (actives[currentTab].length > 0) { removeClass(actives[currentTab][0], 'highlighted'); @@ -1206,7 +1207,6 @@ return; } - console.log(item); shown.push(id_ty); name = item.name; type = itemTypes[item.ty]; @@ -1268,7 +1268,7 @@ } function showResults(results) { - var output, query = getQuery(document.getElementsByClassName('search-input')[0].value); + var output, query = getQuery(search_input.value); currentResults = query.id; output = '

Results for ' + escape(query.query) + @@ -1375,14 +1375,13 @@ function search(e) { var params = getQueryStringParams(); - var search_input = document.getElementsByClassName('search-input')[0]; var query = getQuery(search_input.value.trim()); if (e) { e.preventDefault(); } - if (!query.query || query.id === currentResults) { + if (query.query.length === 0 || query.id === currentResults) { if (query.query.length > 0) { putBackSearch(search_input); } @@ -1468,9 +1467,6 @@ function startSearch() { var searchTimeout; var callback = function() { - var search_input = document.getElementsByClassName('search-input'); - if (search_input.length < 1) { return; } - search_input = search_input[0]; clearTimeout(searchTimeout); if (search_input.value.length === 0) { if (browserSupportsHistoryApi()) { @@ -1488,7 +1484,6 @@ searchTimeout = setTimeout(search, 500); } }; - var search_input = document.getElementsByClassName("search-input")[0]; search_input.onkeyup = callback; search_input.oninput = callback; document.getElementsByClassName("search-form")[0].onsubmit = function(e) { @@ -1538,9 +1533,9 @@ // nothing there, which lets you really go back to a // previous state with nothing in the bar. if (params.search) { - document.getElementsByClassName('search-input')[0].value = params.search; + search_input.value = params.search; } else { - document.getElementsByClassName('search-input')[0].value = ''; + search_input.value = ''; } // Some browsers fire 'onpopstate' for every page load // (Chrome), while others fire the event only when actually @@ -1950,28 +1945,14 @@ return wrapper; } - onEach(document.getElementById('main').getElementsByClassName('docblock'), function(e) { - if (e.parentNode.id === "main") { - var otherMessage; - if (hasClass(e, "type-decl")) { - otherMessage = ' Show type declaration'; - } - e.parentNode.insertBefore(createToggle(otherMessage), e); - if (otherMessage && getCurrentValue('rustdoc-item-declarations') !== "false") { - collapseDocs(e.previousSibling.childNodes[0], "toggle"); - } - } - }); - onEach(document.getElementsByClassName('docblock'), function(e) { if (hasClass(e, 'autohide')) { var wrap = e.previousElementSibling; if (wrap && hasClass(wrap, 'toggle-wrapper')) { var toggle = wrap.childNodes[0]; + var extra = false; if (e.childNodes[0].tagName === 'H3') { - onEach(toggle.getElementsByClassName('toggle-label'), function(i_e) { - i_e.innerHTML = " Show " + e.childNodes[0].innerHTML; - }); + extra = true; } e.style.display = 'none'; addClass(wrap, 'collapsed'); @@ -1980,9 +1961,22 @@ }); onEach(toggle.getElementsByClassName('toggle-label'), function(e) { e.style.display = 'inline-block'; + if (extra === true) { + i_e.innerHTML = " Show " + e.childNodes[0].innerHTML; + } }); } } + if (e.parentNode.id === "main") { + var otherMessage; + if (hasClass(e, "type-decl")) { + otherMessage = ' Show type declaration'; + } + e.parentNode.insertBefore(createToggle(otherMessage), e); + if (otherMessage && getCurrentValue('rustdoc-item-declarations') !== "false") { + collapseDocs(e.previousSibling.childNodes[0], "toggle"); + } + } }) autoCollapseAllImpls(getPageId()); @@ -2088,8 +2082,6 @@ } } - var search_input = document.getElementsByClassName("search-input")[0]; - if (search_input) { search_input.onfocus = function() { putBackSearch(this);