diff options
| author | bors <bors@rust-lang.org> | 2021-04-27 01:58:29 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-04-27 01:58:29 +0000 |
| commit | 6eb956fcbb040d9d4276d97944b5c6df2f84ede8 (patch) | |
| tree | 26cda2f2f8e17722c2612c96787d7328fe130a85 | |
| parent | 61e171566a9c97ec41656e96e4dd23261b812b9d (diff) | |
| parent | 6c8969c43ce37d22b0d535ac8fcee1fb6bdb2977 (diff) | |
| download | rust-6eb956fcbb040d9d4276d97944b5c6df2f84ede8.tar.gz rust-6eb956fcbb040d9d4276d97944b5c6df2f84ede8.zip | |
Auto merge of #84552 - GuillaumeGomez:open-impl-blocks-by-default, r=jsha
Open impl blocks by default Fixes #84558. Part of #84422. As you can see on https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/context/struct.TyCtxt.html, impl blocks are currently not open by default whereas they should. I also realized that a test was outdated so I removed it and opened #84550 because it seems like the rustdoc-gui test suite isn't run on CI... cc `@jyn514` r? `@jsha`
| -rw-r--r-- | src/librustdoc/html/render/mod.rs | 4 | ||||
| -rw-r--r-- | src/librustdoc/html/static/main.js | 6 | ||||
| -rw-r--r-- | src/test/rustdoc-gui/hash-item-expansion.goml | 18 | ||||
| -rw-r--r-- | src/test/rustdoc-gui/impl-default-expansion.goml | 3 | ||||
| -rw-r--r-- | src/test/rustdoc-gui/nojs-attr-pos.goml | 5 |
5 files changed, 27 insertions, 9 deletions
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs index 67ccf2137bf..b82967b403d 100644 --- a/src/librustdoc/html/render/mod.rs +++ b/src/librustdoc/html/render/mod.rs @@ -1305,7 +1305,7 @@ fn render_impl( if let Some(use_absolute) = use_absolute { write!( w, - "<details class=\"rustdoc-toggle implementors-toggle\">\ + "<details class=\"rustdoc-toggle implementors-toggle\" open>\ <summary>\ <h3 id=\"{}\" class=\"impl\"{}>\ <code class=\"in-band\">", @@ -1334,7 +1334,7 @@ fn render_impl( } else { write!( w, - "<details class=\"rustdoc-toggle implementors-toggle\">\ + "<details class=\"rustdoc-toggle implementors-toggle\" open>\ <summary>\ <h3 id=\"{}\" class=\"impl\"{}>\ <code class=\"in-band\">{}</code>", diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index d7e34ed02b3..7fbb97beae7 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -480,6 +480,8 @@ function hideThemeButtonState() { } // Open all ancestor <details> to make this element visible. openParentDetails(h3.parentNode); + } else { + openParentDetails(elem.parentNode); } } } @@ -1412,9 +1414,9 @@ function hideThemeButtonState() { // errors in mobile browsers). if (e.tagName === "H2" || e.tagName === "H3") { var nextTagName = e.nextElementSibling.tagName; - if (nextTagName == "H2" || nextTagName == "H3") { + if (nextTagName === "H2" || nextTagName === "H3") { e.nextElementSibling.style.display = "flex"; - } else { + } else if (nextTagName !== "DETAILS") { e.nextElementSibling.style.display = "block"; } } diff --git a/src/test/rustdoc-gui/hash-item-expansion.goml b/src/test/rustdoc-gui/hash-item-expansion.goml new file mode 100644 index 00000000000..d736d15d184 --- /dev/null +++ b/src/test/rustdoc-gui/hash-item-expansion.goml @@ -0,0 +1,18 @@ +// This test ensures that the element corresponding to the hash is displayed. +goto: file://|DOC_PATH|/struct.Foo.html#method.borrow +// In the blanket implementations list, "Borrow" is the second one, hence the ":nth(2)". +assert: ("#blanket-implementations-list > details:nth-child(2)", "open", "") +// Please note the "\" below is needed because otherwise ".borrow" would be interpreted as +// a class selector. +assert: ("#method\.borrow", {"display": "flex"}) +// We first check that the impl block is open by default. +assert: ("#implementations + details", "open", "") +// We collapse it. +click: "#implementations + details > summary" +// We check that it was collapsed as expected. +assert-false: ("#implementations + details", "open", "") +// To ensure that we will click on the currently hidden method. +assert: (".sidebar-links > a", "must_use") +click: ".sidebar-links > a" +// We check that the impl block was opened as expected so that we can see the method. +assert: ("#implementations + details", "open", "") diff --git a/src/test/rustdoc-gui/impl-default-expansion.goml b/src/test/rustdoc-gui/impl-default-expansion.goml new file mode 100644 index 00000000000..686d98f9736 --- /dev/null +++ b/src/test/rustdoc-gui/impl-default-expansion.goml @@ -0,0 +1,3 @@ +// This test ensures that the impl blocks are open by default. +goto: file://|DOC_PATH|/struct.Foo.html +assert: ("#main > details.implementors-toggle", "open", "") diff --git a/src/test/rustdoc-gui/nojs-attr-pos.goml b/src/test/rustdoc-gui/nojs-attr-pos.goml deleted file mode 100644 index 35daa4cb9e3..00000000000 --- a/src/test/rustdoc-gui/nojs-attr-pos.goml +++ /dev/null @@ -1,5 +0,0 @@ -// Check that the attributes are well positioned when javascript is disabled (since -// there is no toggle to display) -javascript: false -goto: file://|DOC_PATH|/struct.Foo.html -assert: (".attributes", {"margin-left": "0px"}) |
