Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[rustdoc] Page hash handling #70563

Merged
merged 7 commits into from
Jul 7, 2020
Merged

Conversation

GuillaumeGomez
Copy link
Member

Fixes #70476

A good example to see the change is to use this URL: https://doc.rust-lang.org/nightly/std/string/struct.String.html#from_iter.v-3

After the change, it actually goes to the target element (and change the page hash to something more clear for the users).

r? @kinnison

cc @ollie27

@@ -282,6 +284,14 @@ function getSearchElement() {
function expandSection(id) {
var elem = document.getElementById(id);
if (elem && isHidden(elem)) {
if (elem.tagName === "CODE" && elem.parentNode.tagName === "H4") {
// We are in a trait implementation, what we want is the parent.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it not be better to add a class or somesuch in the generated code so that we're not relying so hard on the exact element structure for this?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The problem is that it would require a way bigger change to simplify the DOM in order to do so. At first I thought about adding an id to the collapse button but in this case, we have both the <code> and the <h2> with ids, making it impossible. This is why I change the page's hash when it's the <code>.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does the id get into the code/h2 ? if it's purely via the markdown parser then I suppose I can understand the difficulty. If it's in rustdoc though then we ought to be able to do something. Failing that, the rest looks okay and if you're sure it's reliable then you can r=me.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's worth checking. I'll take another look around to be sure about it.

@kinnison kinnison added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Apr 4, 2020
@crlf0710 crlf0710 added the T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. label Apr 24, 2020
@crlf0710 crlf0710 added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 2, 2020
@crlf0710 crlf0710 added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 15, 2020
@Elinvynia Elinvynia added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 27, 2020
@Elinvynia Elinvynia added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jun 10, 2020
@Elinvynia Elinvynia added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jun 25, 2020
@GuillaumeGomez GuillaumeGomez force-pushed the page-hash-handling branch 2 times, most recently from 833ffa4 to aa5c954 Compare June 27, 2020 16:10
@GuillaumeGomez
Copy link
Member Author

So in the end, I simply removed all the IDs inside the <code> tags because I couldn't find a case where they might be useful. So unless I'm wrong, I think I'm done here. :)

@GuillaumeGomez GuillaumeGomez added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jun 27, 2020
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-8 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
##[section]Starting: Linux x86_64-gnu-llvm-8
##[section]Starting: Initialize job
Agent name: 'Azure Pipelines 8'
Agent machine name: 'fv-az659'
Current agent version: '2.171.1'
##[group]Operating System
16.04.6
LTS
LTS
##[endgroup]
##[group]Virtual Environment
Environment: ubuntu-16.04
Version: 20200621.1
Included Software: https://github.com/actions/virtual-environments/blob/ubuntu16/20200621.1/images/linux/Ubuntu1604-README.md
##[endgroup]
Agent running as: 'vsts'
Prepare build directory.
Set build variables.
Download all required tasks.
Download all required tasks.
Downloading task: Bash (3.171.1)
Checking job knob settings.
   Knob: AgentToolsDirectory = /opt/hostedtoolcache Source: ${AGENT_TOOLSDIRECTORY} 
   Knob: AgentPerflog = /home/vsts/perflog Source: ${VSTS_AGENT_PERFLOG} 
Start tracking orphan processes.
##[section]Finishing: Initialize job
##[section]Starting: Configure Job Name
==============================================================================
---
========================== Starting Command Output ===========================
[command]/bin/bash --noprofile --norc /home/vsts/work/_temp/be58172c-8d8c-46c8-a157-6f548ddb8893.sh

##[section]Finishing: Disable git automatic line ending conversion
##[section]Starting: Checkout rust-lang/rust@refs/pull/70563/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
---
##[command]git remote add origin https://github.com/rust-lang/rust
##[command]git config gc.auto 0
##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
##[command]git config --get-all http.proxy
##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/70563/merge:refs/remotes/pull/70563/merge
---
 ---> 31fea614d2f3
Step 5/8 : ENV RUST_CONFIGURE_ARGS       --build=x86_64-unknown-linux-gnu       --llvm-root=/usr/lib/llvm-8       --enable-llvm-link-shared       --set rust.thin-lto-import-instr-limit=10
 ---> Using cache
 ---> 4195cadf126d
Step 6/8 : ENV SCRIPT python2.7 ../x.py test --exclude src/tools/tidy &&            python2.7 ../x.py test src/test/mir-opt --pass=build                                   --target=armv5te-unknown-linux-gnueabi &&            python2.7 ../x.py test src/tools/tidy
 ---> 4e90f6b48f05
Step 7/8 : ENV NO_DEBUG_ASSERTIONS=1
 ---> Using cache
 ---> dfa0a356d899
---
Set({"src/librustc_parse_format"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_passes"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_plugin_impl"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_privacy"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_query_system"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_save_analysis"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_serialize"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_session"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_span"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
---
Set({"src/librustc_parse_format"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_passes"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_plugin_impl"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_privacy"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_query_system"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_save_analysis"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_serialize"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_session"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_span"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
---
   Compiling rustc_parse_format v0.0.0 (/checkout/src/librustc_parse_format)
   Compiling tracing v0.1.15
   Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
   Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
   Compiling chalk-engine v0.14.0
   Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
   Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
   Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
   Compiling rustc_parse_format v0.0.0 (/checkout/src/librustc_parse_format)
   Compiling tracing v0.1.15
   Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
   Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
   Compiling chalk-engine v0.14.0
   Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
   Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
   Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
...........................i........................................................................ 1900/10409
.................................................................................................... 2000/10409
......................................................i..i.......................................... 2100/10409
.................................................................................................... 2200/10409
............................................iiiii................................................... 2300/10409
.................................................................................................... 2500/10409
.................................................................................................... 2600/10409
.................................................................................................... 2700/10409
.................................................................................................... 2800/10409
---
...i................................................................................................ 5300/10409
.................................................................................................... 5400/10409
....................................i............................................................... 5500/10409
..............................i..................................................................... 5600/10409
..................................................ii.ii........i...i................................ 5700/10409
...................i................................................................................ 5900/10409
................i................................................................................... 6000/10409
..........................................................................ii........................ 6100/10409
.............i...................................................................................... 6200/10409
.............i...................................................................................... 6200/10409
.................................................................................................... 6300/10409
.................................................................................................... 6400/10409
.....................................ii...i..ii...........i......................................... 6500/10409
.................................................................................................... 6700/10409
.................................................................................................... 6800/10409
.................................................................................................... 6800/10409
........................................................................i..ii....................... 6900/10409
.................................................................................................... 7100/10409
.................................................................................................... 7200/10409
............................i....................................................................... 7300/10409
.................................................................................................... 7400/10409
---
.................................................................................................... 8300/10409
.................................................................................................... 8400/10409
...............................................................................i.................... 8500/10409
.................................................................................................... 8600/10409
.................................iiiiii..iiiiii.i................................................... 8700/10409
.................................................................................................... 8900/10409
.................................................................................................... 9000/10409
.................................................................................................... 9100/10409
.................................................................................................... 9200/10409
---
Suite("src/test/codegen") not skipped for "bootstrap::test::Codegen" -- not in ["src/tools/tidy"]
Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 202 tests
iiii......i..i...............ii..i..........i...........i............i...........i..i........i...... 100/202
..i....i.............i.i.i...iii..iiii....................................iii.................ii.... 200/202
test result: ok. 170 passed; 0 failed; 32 ignored; 0 measured; 0 filtered out

 finished in 6.910
Suite("src/test/codegen-units") not skipped for "bootstrap::test::CodegenUnits" -- not in ["src/tools/tidy"]
---
Suite("src/test/assembly") not skipped for "bootstrap::test::Assembly" -- not in ["src/tools/tidy"]
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 22 tests
iiiiiiiiiiiiiiiiiiiiii

 finished in 0.159
Suite("src/test/incremental") not skipped for "bootstrap::test::Incremental" -- not in ["src/tools/tidy"]
Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/debuginfo") not skipped for "bootstrap::test::Debuginfo" -- not in ["src/tools/tidy"]
Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 116 tests
iiiii..i.....i..i...i..i.i.i..i..i..ii....i.i....ii..........iiii.........i.....i...i.......ii.i.ii. 100/116
....iiii.....ii.

 finished in 16.258
Suite("src/test/ui-fulldeps") not skipped for "bootstrap::test::UiFullDeps" -- not in ["src/tools/tidy"]
Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---

   Doc-tests core

running 2586 tests
......iiiii......................................................................................... 100/2586
.................................................................................................ii. 200/2586
.......................................i............................................................ 400/2586
...............................................................................................i..i. 500/2586
...............................................................................................i..i. 500/2586
.................iiii............................................................................... 600/2586
.................................................................................................... 800/2586
.................................................................................................... 900/2586
.................................................................................................... 1000/2586
.................................................................................................... 1100/2586
---

running 1043 tests
i................................................................................................... 100/1043
.................................................................................................... 200/1043
...................iii......i......i...i.........i.................................................. 300/1043
..........................................................i....i.................................... 500/1043
...................ii............................................................................... 600/1043
.................................................................................................... 700/1043
.................................................................................................... 700/1043
...................................................................iiii............................. 800/1043
.................................................................................................... 900/1043
..........................................................................................iiii...... 1000/1043
test result: ok. 1023 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out

 finished in 155.168
Set({"src/libterm"}) not skipped for "bootstrap::test::Crate" -- not in ["src/tools/tidy"]
---
Set({"src/librustc_parse_format"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_passes"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_plugin_impl"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_privacy"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_query_system"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_save_analysis"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_serialize"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_session"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_span"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
---
Documenting error index (x86_64-unknown-linux-gnu)
({"src/librustc_passes"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_plugin_impl"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_privacy"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_query_system"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_save_analysis"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_serialize"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_session"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_span"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
---
Rustbook (x86_64-unknown-linux-gnu) - edition-guide
Building stage0 tool linkchecker (x86_64-unknown-linux-gnu)
   Compiling linkchecker v0.1.0 (/checkout/src/tools/linkchecker)
    Finished release [optimized] target(s) in 1.59s
core/option/enum.Option.html:28: broken link fragment `#Some.v` pointing to `core/option/enum.Option.html`
core/option/enum.Option.html:100: broken link fragment `#Some.v` pointing to `core/option/enum.Option.html`
core/option/enum.Option.html:432: broken link fragment `#Some.v` pointing to `core/option/enum.Option.html`
core/option/enum.Option.html:433: broken link fragment `#Some.v` pointing to `core/option/enum.Option.html`
core/option/enum.Option.html:527: broken link fragment `#None.v` pointing to `core/option/enum.Option.html`
core/option/enum.Option.html:564: broken link fragment `#None.v` pointing to `core/option/enum.Option.html`
core/option/enum.Option.html:565: broken link fragment `#None.v` pointing to `core/option/enum.Option.html`
core/option/enum.Option.html:566: broken link fragment `#None.v` pointing to `core/option/enum.Option.html`
core/str/trait.FromStr.html:90: broken link fragment `#Ok.v` pointing to `core/result/enum.Result.html`
core/str/trait.FromStr.html:125: broken link fragment `#Ok.v` pointing to `core/result/enum.Result.html`
core/result/enum.Result.html:32: broken link fragment `#Ok.v` pointing to `core/result/enum.Result.html`
core/result/enum.Result.html:45: broken link fragment `#Err.v` pointing to `core/result/enum.Result.html`
core/result/enum.Result.html:172: broken link fragment `#Ok.v` pointing to `core/result/enum.Result.html`
core/result/enum.Result.html:183: broken link fragment `#Ok.v` pointing to `core/result/enum.Result.html`
core/result/enum.Result.html:420: broken link fragment `#Ok.v` pointing to `core/result/enum.Result.html`
core/result/enum.Result.html:433: broken link fragment `#Err.v` pointing to `core/result/enum.Result.html`
core/result/enum.Result.html:436: broken link fragment `#Ok.v` pointing to `core/result/enum.Result.html`
core/result/enum.Result.html:451: broken link fragment `#Err.v` pointing to `core/result/enum.Result.html`
core/result/enum.Result.html:528: broken link fragment `#Ok.v` pointing to `core/result/enum.Result.html`
core/alloc/enum.AllocInit.html:16: broken link fragment `#Uninitialized.v` pointing to `core/alloc/enum.AllocInit.html`
core/alloc/enum.AllocInit.html:17: broken link fragment `#Zeroed.v` pointing to `core/alloc/enum.AllocInit.html`
core/alloc/trait.AllocRef.html:87: broken link fragment `#InPlace.v` pointing to `core/alloc/enum.ReallocPlacement.html`
core/alloc/trait.AllocRef.html:88: broken link fragment `#MayMove.v` pointing to `core/alloc/enum.ReallocPlacement.html`
core/alloc/trait.AllocRef.html:125: broken link fragment `#InPlace.v` pointing to `core/alloc/enum.ReallocPlacement.html`
core/iter/trait.IntoIterator.html:109: broken link fragment `#Ok.v` pointing to `core/result/enum.Result.html`
core/iter/trait.FromIterator.html:139: broken link fragment `#None.v` pointing to `core/option/enum.Option.html`
core/iter/trait.FromIterator.html:140: broken link fragment `#None.v` pointing to `core/option/enum.Option.html`
core/iter/trait.FromIterator.html:141: broken link fragment `#None.v` pointing to `core/option/enum.Option.html`
core/default/trait.Default.html:102: broken link fragment `#None.v` pointing to `core/option/enum.Option.html`
alloc/alloc/enum.AllocInit.html:16: broken link fragment `#Uninitialized.v` pointing to `alloc/alloc/enum.AllocInit.html`
alloc/alloc/enum.AllocInit.html:17: broken link fragment `#Zeroed.v` pointing to `alloc/alloc/enum.AllocInit.html`
alloc/alloc/trait.AllocRef.html:87: broken link fragment `#InPlace.v` pointing to `alloc/alloc/enum.ReallocPlacement.html`
alloc/alloc/trait.AllocRef.html:88: broken link fragment `#MayMove.v` pointing to `alloc/alloc/enum.ReallocPlacement.html`
alloc/alloc/trait.AllocRef.html:125: broken link fragment `#InPlace.v` pointing to `alloc/alloc/enum.ReallocPlacement.html`
std/io/struct.IoSliceMut.html:721: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/io/struct.IoSliceMut.html:724: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/io/struct.IoSliceMut.html:753: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/io/struct.IoSliceMut.html:756: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/io/struct.IoSliceMut.html:778: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/io/struct.IoSliceMut.html:781: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/option/enum.Option.html:28: broken link fragment `#Some.v` pointing to `std/option/enum.Option.html`
std/option/enum.Option.html:100: broken link fragment `#Some.v` pointing to `std/option/enum.Option.html`
std/option/enum.Option.html:432: broken link fragment `#Some.v` pointing to `std/option/enum.Option.html`
std/option/enum.Option.html:433: broken link fragment `#Some.v` pointing to `std/option/enum.Option.html`
std/option/enum.Option.html:527: broken link fragment `#None.v` pointing to `std/option/enum.Option.html`
std/option/enum.Option.html:564: broken link fragment `#None.v` pointing to `std/option/enum.Option.html`
std/option/enum.Option.html:565: broken link fragment `#None.v` pointing to `std/option/enum.Option.html`
std/option/enum.Option.html:566: broken link fragment `#None.v` pointing to `std/option/enum.Option.html`
std/str/trait.FromStr.html:90: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/str/trait.FromStr.html:125: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/result/enum.Result.html:32: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/result/enum.Result.html:45: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/result/enum.Result.html:172: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/result/enum.Result.html:183: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/result/enum.Result.html:420: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/result/enum.Result.html:433: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/result/enum.Result.html:436: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/result/enum.Result.html:451: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/result/enum.Result.html:528: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/vec/struct.Vec.html:1539: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/vec/struct.Vec.html:1542: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/vec/struct.Vec.html:1571: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/vec/struct.Vec.html:1574: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/vec/struct.Vec.html:1596: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/vec/struct.Vec.html:1599: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/primitive.f32.html:816: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/primitive.f64.html:822: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/alloc/enum.AllocInit.html:16: broken link fragment `#Uninitialized.v` pointing to `std/alloc/enum.AllocInit.html`
std/alloc/enum.AllocInit.html:17: broken link fragment `#Zeroed.v` pointing to `std/alloc/enum.AllocInit.html`
std/alloc/trait.AllocRef.html:87: broken link fragment `#InPlace.v` pointing to `std/alloc/enum.ReallocPlacement.html`
std/alloc/trait.AllocRef.html:88: broken link fragment `#MayMove.v` pointing to `std/alloc/enum.ReallocPlacement.html`
std/alloc/trait.AllocRef.html:125: broken link fragment `#InPlace.v` pointing to `std/alloc/enum.ReallocPlacement.html`
std/primitive.slice.html:710: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/primitive.slice.html:713: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/primitive.slice.html:742: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/primitive.slice.html:745: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/primitive.slice.html:767: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/primitive.slice.html:770: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/iter/trait.IntoIterator.html:192: broken link fragment `#Ok.v` pointing to `std/result/enum.Result.html`
std/iter/trait.FromIterator.html:140: broken link fragment `#None.v` pointing to `std/option/enum.Option.html`
std/iter/trait.FromIterator.html:141: broken link fragment `#None.v` pointing to `std/option/enum.Option.html`
std/iter/trait.FromIterator.html:142: broken link fragment `#None.v` pointing to `std/option/enum.Option.html`
std/default/trait.Default.html:116: broken link fragment `#None.v` pointing to `std/option/enum.Option.html`
std/os/unix/net/struct.UnixDatagram.html:188: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/os/unix/net/struct.UnixDatagram.html:201: broken link fragment `#Err.v` pointing to `std/result/enum.Result.html`
std/os/unix/fs/trait.FileExt.html:38: broken link fragment `#write.v` pointing to `std/fs/struct.File.html`
thread 'main' panicked at 'found some broken links', src/tools/linkchecker/main.rs:41:9


command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/linkchecker" "/checkout/obj/build/x86_64-unknown-linux-gnu/doc"
expected success, got: exit code: 101
---
  local time: Sat Jun 27 18:07:31 UTC 2020
  network time: Sat, 27 Jun 2020 18:07:31 GMT
== end clock drift check ==

##[error]Bash exited with code '1'.
##[section]Finishing: Run build
##[section]Starting: Checkout rust-lang/rust@refs/pull/70563/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
Author       : Microsoft
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
==============================================================================
Cleaning any cached credential from repository: rust-lang/rust (GitHub)
##[section]Finishing: Checkout rust-lang/rust@refs/pull/70563/merge to s
Cleaning up task key
Start cleaning up orphan processes.
Terminate orphan process: pid (3604) (python)
##[section]Finishing: Finalize Job

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @rust-lang/infra. (Feature Requests)

@GuillaumeGomez
Copy link
Member Author

cc @jyn514

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-8 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
##[section]Starting: Linux x86_64-gnu-llvm-8
##[section]Starting: Initialize job
Agent name: 'Azure Pipelines 3'
Agent machine name: 'fv-az578'
Current agent version: '2.171.1'
##[group]Operating System
16.04.6
LTS
LTS
##[endgroup]
##[group]Virtual Environment
Environment: ubuntu-16.04
Version: 20200621.1
Included Software: https://github.com/actions/virtual-environments/blob/ubuntu16/20200621.1/images/linux/Ubuntu1604-README.md
##[endgroup]
Agent running as: 'vsts'
Prepare build directory.
Set build variables.
Download all required tasks.
Download all required tasks.
Downloading task: Bash (3.171.1)
Checking job knob settings.
   Knob: AgentToolsDirectory = /opt/hostedtoolcache Source: ${AGENT_TOOLSDIRECTORY} 
   Knob: AgentPerflog = /home/vsts/perflog Source: ${VSTS_AGENT_PERFLOG} 
Start tracking orphan processes.
##[section]Finishing: Initialize job
##[section]Starting: Configure Job Name
==============================================================================
---
========================== Starting Command Output ===========================
[command]/bin/bash --noprofile --norc /home/vsts/work/_temp/379c2fd8-5b8e-4322-a7da-e7d9e4c5fda5.sh

##[section]Finishing: Disable git automatic line ending conversion
##[section]Starting: Checkout rust-lang/rust@refs/pull/70563/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
---
##[command]git remote add origin https://github.com/rust-lang/rust
##[command]git config gc.auto 0
##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
##[command]git config --get-all http.proxy
##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/70563/merge:refs/remotes/pull/70563/merge
---
 ---> 31fea614d2f3
Step 5/8 : ENV RUST_CONFIGURE_ARGS       --build=x86_64-unknown-linux-gnu       --llvm-root=/usr/lib/llvm-8       --enable-llvm-link-shared       --set rust.thin-lto-import-instr-limit=10
 ---> Using cache
 ---> 4195cadf126d
Step 6/8 : ENV SCRIPT python2.7 ../x.py test --exclude src/tools/tidy &&            python2.7 ../x.py test src/test/mir-opt --pass=build                                   --target=armv5te-unknown-linux-gnueabi &&            python2.7 ../x.py test src/tools/tidy
 ---> 4e90f6b48f05
Step 7/8 : ENV NO_DEBUG_ASSERTIONS=1
 ---> Using cache
 ---> dfa0a356d899
---
Set({"src/librustc_parse_format"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_passes"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_plugin_impl"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_privacy"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_query_system"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_save_analysis"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_serialize"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_session"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_span"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
---
Set({"src/librustc_parse_format"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_passes"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_plugin_impl"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_privacy"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_query_system"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_save_analysis"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_serialize"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_session"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"src/librustc_span"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
---
   Compiling rustc_parse_format v0.0.0 (/checkout/src/librustc_parse_format)
   Compiling tracing v0.1.15
   Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
   Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
   Compiling chalk-engine v0.14.0
   Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
   Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
   Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
   Compiling rustc_parse_format v0.0.0 (/checkout/src/librustc_parse_format)
   Compiling tracing v0.1.15
   Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
   Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
   Compiling chalk-engine v0.14.0
   Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
   Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
   Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
...........................i........................................................................ 1900/10409
.................................................................................................... 2000/10409
......................................................i..i.......................................... 2100/10409
.................................................................................................... 2200/10409
............................................iiiii................................................... 2300/10409
.................................................................................................... 2500/10409
.................................................................................................... 2600/10409
.................................................................................................... 2700/10409
.................................................................................................... 2800/10409
---
...i................................................................................................ 5300/10409
.................................................................................................... 5400/10409
....................................i............................................................... 5500/10409
..............................i..................................................................... 5600/10409
..................................................ii.ii........i...i................................ 5700/10409
...................i................................................................................ 5900/10409
................i................................................................................... 6000/10409
..........................................................................ii........................ 6100/10409
.............i...................................................................................... 6200/10409
.............i...................................................................................... 6200/10409
.................................................................................................... 6300/10409
.................................................................................................... 6400/10409
.....................................ii...i..ii...........i......................................... 6500/10409
.................................................................................................... 6700/10409
.................................................................................................... 6800/10409
.................................................................................................... 6800/10409
........................................................................i..ii....................... 6900/10409
.................................................................................................... 7100/10409
.................................................................................................... 7200/10409
............................i....................................................................... 7300/10409
.................................................................................................... 7400/10409
---
.................................................................................................... 8300/10409
.................................................................................................... 8400/10409
...............................................................................i.................... 8500/10409
.................................................................................................... 8600/10409
.................................iiiiii..iiiiii.i................................................... 8700/10409
.................................................................................................... 8900/10409
.................................................................................................... 9000/10409
.................................................................................................... 9100/10409
.................................................................................................... 9200/10409
---
Suite("src/test/codegen") not skipped for "bootstrap::test::Codegen" -- not in ["src/tools/tidy"]
Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 202 tests
iiii......i..i...............ii..i..........i...........i............i...........i..i........i...... 100/202
..i....i.............i.i.i...iii..iiii....................................iii.................ii.... 200/202
test result: ok. 170 passed; 0 failed; 32 ignored; 0 measured; 0 filtered out

 finished in 7.234
Suite("src/test/codegen-units") not skipped for "bootstrap::test::CodegenUnits" -- not in ["src/tools/tidy"]
---
Suite("src/test/assembly") not skipped for "bootstrap::test::Assembly" -- not in ["src/tools/tidy"]
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 22 tests
iiiiiiiiiiiiiiiiiiiiii

 finished in 0.174
Suite("src/test/incremental") not skipped for "bootstrap::test::Incremental" -- not in ["src/tools/tidy"]
Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/debuginfo") not skipped for "bootstrap::test::Debuginfo" -- not in ["src/tools/tidy"]
Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 116 tests
iiiii..i.....i..i...i..i.i.i..i..i..ii....i.i....ii..........iiii.........i.....i...i.......ii.i.ii. 100/116
....iiii.....ii.

 finished in 17.520
Suite("src/test/ui-fulldeps") not skipped for "bootstrap::test::UiFullDeps" -- not in ["src/tools/tidy"]
Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
failures:

---- [rustdoc] rustdoc/intra-link-self.rs stdout ----

error: htmldocck failed!
status: exit code: 1
command: "/usr/bin/python2.7" "/checkout/src/etc/htmldocck.py" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/intra-link-self" "/checkout/src/test/rustdoc/intra-link-self.rs"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
43: @has check failed
 `XPATH PATTERN` did not match
     // @has foo/enum.MyEnum.html '//a/@href' '../foo/enum.MyEnum.html#EnumVariant.v'
Encountered 1 errors

------------------------------------------



---- [rustdoc] rustdoc/intra-links.rs stdout ----

error: htmldocck failed!
status: exit code: 1
command: "/usr/bin/python2.7" "/checkout/src/etc/htmldocck.py" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/intra-links" "/checkout/src/test/rustdoc/intra-links.rs"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
5: @has check failed
 `XPATH PATTERN` did not match
 // @has - '//a/@href' '../intra_links/enum.ThisEnum.html#ThisVariant.v'
76: @has check failed
 `XPATH PATTERN` did not match
 // @has - '//a/@href' '../intra_links/enum.ThisEnum.html#ThisVariant.v'
Encountered 2 errors

------------------------------------------



---- [rustdoc] rustdoc/struct-field.rs stdout ----

error: htmldocck failed!
status: exit code: 1
command: "/usr/bin/python2.7" "/checkout/src/etc/htmldocck.py" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/struct-field" "/checkout/src/test/rustdoc/struct-field.rs"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
7: @has check failed
 `XPATH PATTERN` did not match
 // @has foo/index.html '//*[@class="docblock"]/p/a[@href="../foo/enum.Uniooon.html#X.v"]' 'Uniooon::X'
Encountered 1 errors

------------------------------------------

---
thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:344:22
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--rustdoc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "--src-base" "/checkout/src/test/rustdoc" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "rustdoc" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-8/bin/FileCheck" "--nodejs" "/usr/bin/node" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "8.0.0" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"


failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test --exclude src/tools/tidy
Build completed unsuccessfully in 1:11:33
Build completed unsuccessfully in 1:11:33
== clock drift check ==
  local time: Sat Jun 27 23:59:20 UTC 2020
  network time: Sat, 27 Jun 2020 23:59:20 GMT
== end clock drift check ==

##[error]Bash exited with code '1'.
##[section]Finishing: Run build
##[section]Starting: Checkout rust-lang/rust@refs/pull/70563/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
Author       : Microsoft
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
==============================================================================
Cleaning any cached credential from repository: rust-lang/rust (GitHub)
##[section]Finishing: Checkout rust-lang/rust@refs/pull/70563/merge to s
Cleaning up task key
Start cleaning up orphan processes.
Terminate orphan process: pid (4625) (python)
##[section]Finishing: Finalize Job

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @rust-lang/infra. (Feature Requests)

@GuillaumeGomez
Copy link
Member Author

@kinnison I remove the ids from <code> and fixed the links and links generation.

@kinnison
Copy link
Contributor

The IDs do look nicer in use. And you're sure nothing was relying on the dodgy IDs?

@jyn514
Copy link
Member

jyn514 commented Jun 29, 2020

nothing was relying on the dodgy IDs

Well, end-users could be relying on them. Until we stabilize intra-doc links, users have to link using the same format rustdoc generates, so changing the format will break links. Fortunately these were only hashes so the links will only go to the top of the page instead of giving a 404.

@ollie27
Copy link
Member

ollie27 commented Jun 29, 2020

The extra IDs are part of #35236. To remove them we have to be sure that nothing is still using them. For example it looks like RLS is: https://github.com/rust-lang/rls/blob/fb46b914c11b06828680cb526e2abe9e1d69b868/rls-analysis/src/lib.rs#L500

@jyn514
Copy link
Member

jyn514 commented Jun 30, 2020

What kind of stability guarantees do these new URLs have?

None, use at your own risk.

Can other people use them?

Sure, but I wouldn't encourage it.

🤷

@ollie27
Copy link
Member

ollie27 commented Jul 1, 2020

So I guess we're good? The <code> should never have had ids in the first place (and the reason is now very likely lost in a far away past).

We have git blame... As I said, the IDs were added to <span>s in #35236 and moved to the <code> tags in #55798.

FWIW I agree with removing these, but if we're going to remove features we should make some effort to help migrate existing users like RLS. We should also fully revert #35236 not just part of it.

@GuillaumeGomez
Copy link
Member Author

I completely removed the option everywhere I could find it. Now I wonder: how do we handle this with RLS? ping @nrc

@kinnison
Copy link
Contributor

kinnison commented Jul 2, 2020

@GuillaumeGomez It may also be worth pinging @Xanewok for rls stuff.

@GuillaumeGomez
Copy link
Member Author

Well, you did it.

@ollie27: Should we wait for RLS or should we merge? I don't really know how things are supposed to be handled in such a case... Supporting RLS through HTML ids was not a great idea. :-/

@Xanewok
Copy link
Member

Xanewok commented Jul 6, 2020

RLS is currently broken and so I don't think we should block on RLS in this regard. I assume this modifies the behaviour that this snippet relies on:

https://github.com/rust-lang/rls/blob/fed7a31cd93bbd3c8a9f38871838b59b5dce2a35/rls-analysis/src/lib.rs#L490-L527

If so, could you help me adapt it to make it work as expected by new behaviour?

@GuillaumeGomez
Copy link
Member Author

GuillaumeGomez commented Jul 6, 2020

The big difference will be that RLS will have to rely on "full" path instead of the weird abbreviated ones it used until now. So for example, a variant is "#variant.name". If you need a direct translation for each item, we can talk about it privately so I can help you more quickly.

So if RLS isn't a blocker anymore, let's merge it.

@bors r=ollie27,kinnison

@bors
Copy link
Contributor

bors commented Jul 6, 2020

📌 Commit e955beb has been approved by ollie27,kinnison

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 6, 2020
Dylan-DPC-zz pushed a commit to Dylan-DPC-zz/rust that referenced this pull request Jul 6, 2020
…r=ollie27,kinnison

[rustdoc] Page hash handling

Fixes rust-lang#70476

A good example to see the change is to use this URL: https://doc.rust-lang.org/nightly/std/string/struct.String.html#from_iter.v-3

After the change, it actually goes to the target element (and change the page hash to something more clear for the users).

r? @kinnison

cc @ollie27
bors added a commit to rust-lang-ci/rust that referenced this pull request Jul 7, 2020
…arth

Rollup of 14 pull requests

Successful merges:

 - rust-lang#70563 ([rustdoc] Page hash handling)
 - rust-lang#73856 (Edit librustc_lexer top-level docs)
 - rust-lang#73870 (typeck: adding type information to projection)
 - rust-lang#73953 (Audit hidden/short code suggestions)
 - rust-lang#73962 (libstd/net/tcp.rs: #![deny(unsafe_op_in_unsafe_fn)])
 - rust-lang#73969 (mir: mark mir construction temporaries as internal)
 - rust-lang#73974 (Move A|Rc::as_ptr from feature(weak_into_raw) to feature(rc_as_ptr))
 - rust-lang#74067 (rustdoc: Restore underline text decoration on hover for FQN in header)
 - rust-lang#74074 (Fix the return type of Windows' `OpenOptionsExt::security_qos_flags`.)
 - rust-lang#74078 (Always resolve type@primitive as a primitive, not a module)
 - rust-lang#74089 (Add rust-analyzer to the build manifest)
 - rust-lang#74090 (Remove unused RUSTC_DEBUG_ASSERTIONS)
 - rust-lang#74102 (Fix const prop ICE)
 - rust-lang#74112 (Expand abbreviation in core::ffi description)

Failed merges:

r? @ghost
@bors
Copy link
Contributor

bors commented Jul 7, 2020

⌛ Testing commit e955beb with merge 70f9d23...

@bors
Copy link
Contributor

bors commented Jul 7, 2020

☔ The latest upstream changes (presumably #74117) made this pull request unmergeable. Please resolve the merge conflicts.

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jul 7, 2020
@bors bors merged commit 218d96e into rust-lang:master Jul 7, 2020
@GuillaumeGomez GuillaumeGomez deleted the page-hash-handling branch July 7, 2020 07:49
flip1995 pushed a commit to flip1995/rust that referenced this pull request Jul 14, 2020
…arth

Rollup of 14 pull requests

Successful merges:

 - rust-lang#70563 ([rustdoc] Page hash handling)
 - rust-lang#73856 (Edit librustc_lexer top-level docs)
 - rust-lang#73870 (typeck: adding type information to projection)
 - rust-lang#73953 (Audit hidden/short code suggestions)
 - rust-lang#73962 (libstd/net/tcp.rs: #![deny(unsafe_op_in_unsafe_fn)])
 - rust-lang#73969 (mir: mark mir construction temporaries as internal)
 - rust-lang#73974 (Move A|Rc::as_ptr from feature(weak_into_raw) to feature(rc_as_ptr))
 - rust-lang#74067 (rustdoc: Restore underline text decoration on hover for FQN in header)
 - rust-lang#74074 (Fix the return type of Windows' `OpenOptionsExt::security_qos_flags`.)
 - rust-lang#74078 (Always resolve type@primitive as a primitive, not a module)
 - rust-lang#74089 (Add rust-analyzer to the build manifest)
 - rust-lang#74090 (Remove unused RUSTC_DEBUG_ASSERTIONS)
 - rust-lang#74102 (Fix const prop ICE)
 - rust-lang#74112 (Expand abbreviation in core::ffi description)

Failed merges:

r? @ghost
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Anchor to trait item in rustdoc does not expand the trait
9 participants