From 729e37da4dd68adbd42d3a91791d01b170be38e5 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Mon, 4 Feb 2019 15:50:46 +0100 Subject: [PATCH] Don't apply impl block collapse rules to trait impls --- src/librustdoc/html/static/main.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index 82604cc7ad8bb..1c38bdb1deaf8 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -1918,9 +1918,9 @@ if (!DOMTokenList.prototype.remove) { }; } - function implHider(addOrRemove) { + function implHider(addOrRemove, fullHide) { return function(n) { - var is_method = hasClass(n, "method"); + var is_method = hasClass(n, "method") || fullHide; if (is_method || hasClass(n, "type")) { if (is_method === true) { if (addOrRemove) { @@ -1974,7 +1974,7 @@ if (!DOMTokenList.prototype.remove) { } } } else { - // we are collapsing the impl block + // we are collapsing the impl block(s). var parentElem = toggle.parentNode; relatedDoc = parentElem; @@ -1989,7 +1989,7 @@ if (!DOMTokenList.prototype.remove) { return; } - // Hide all functions, but not associated types/consts + // Hide all functions, but not associated types/consts. if (mode === "toggle") { if (hasClass(relatedDoc, "fns-now-collapsed") || @@ -2000,16 +2000,17 @@ if (!DOMTokenList.prototype.remove) { } } + var dontApplyBlockRule = toggle.parentNode.parentNode.id !== "main"; if (action === "show") { removeClass(relatedDoc, "fns-now-collapsed"); removeClass(docblock, "hidden-by-usual-hider"); - onEachLazy(toggle.childNodes, adjustToggle(false)); - onEachLazy(relatedDoc.childNodes, implHider(false)); + onEachLazy(toggle.childNodes, adjustToggle(false, dontApplyBlockRule)); + onEachLazy(relatedDoc.childNodes, implHider(false, dontApplyBlockRule)); } else if (action === "hide") { addClass(relatedDoc, "fns-now-collapsed"); addClass(docblock, "hidden-by-usual-hider"); - onEachLazy(toggle.childNodes, adjustToggle(true)); - onEachLazy(relatedDoc.childNodes, implHider(true)); + onEachLazy(toggle.childNodes, adjustToggle(true, dontApplyBlockRule); + onEachLazy(relatedDoc.childNodes, implHider(true, dontApplyBlockRule)); } } }