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

weak-into-raw: Clarify some details in Safety #66710

Merged
merged 1 commit into from
Dec 6, 2019

Conversation

vorner
Copy link
Contributor

@vorner vorner commented Nov 24, 2019

Clarify it is OK to pass a pointer that never owned a weak count (one
from Weak::new) back into it as it was created from it. Relates to
discussion in #60728.

@CAD97 Do you want to have a look at the new docs?

@rust-highfive
Copy link
Collaborator

r? @Mark-Simulacrum

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Nov 24, 2019
Copy link
Contributor

@CAD97 CAD97 left a comment

Choose a reason for hiding this comment

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

Just a couple small notes, this is a good clarification otherwise.

src/liballoc/rc.rs Outdated Show resolved Hide resolved
/// is or *was* managed by an [`Rc`] and the weak count of that [`Rc`] must not have reached
/// 0. It is allowed for the strong count to be 0.
/// The pointer must have originated from the [`from_raw`] (or [`as_raw`], provided there was
/// corresponding [`forget`] on the `Weak<T>`) and must still own its potential weak reference
Copy link
Contributor

Choose a reason for hiding this comment

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

This isn't perfectly accurate, as you don't have to forget the original weak in the past, you can forget this weak if the pointer is from as_raw.

I'm not sure how to reword this note, though. Probably something along the lines of "only as many Weak are dropped as are created by non-raw methods".

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Technically yes, but only as long as some other Weak<T> or Strong<T> pointing to the same thing exists. If you created it after the weak count dropped to 0 and then forgot it, it would be UB, because it would play with the weak count field that no longer exists.

But if you hold a Weak<T> somewhere, then you probably don't really need to create and forget it. So I believe this might be good enough ‒ especially because this safety section errs on the safe side ‒ it's more restrictive than needs to be.

Anyway, I don't see how to make it more accurate, still readable and not ramble about it over two pages :-(.

@vorner
Copy link
Contributor Author

vorner commented Nov 24, 2019

I've added a fixup. That one should be squashed before merging ‒ I'll do so once it gets completely reviewed.

@Centril
Copy link
Contributor

Centril commented Nov 24, 2019

r? @RalfJung perhaps

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 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.
2019-11-24T18:19:17.3022155Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-11-24T18:19:17.9264475Z ##[command]git config gc.auto 0
2019-11-24T18:19:17.9268041Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-11-24T18:19:17.9289068Z ##[command]git config --get-all http.proxy
2019-11-24T18:19:17.9297119Z ##[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/66710/merge:refs/remotes/pull/66710/merge
---
2019-11-24T19:18:24.3036360Z .................................................................................................... 1600/9283
2019-11-24T19:18:28.9853351Z .................................................................................................... 1700/9283
2019-11-24T19:18:41.9432838Z .............................i...................................................................... 1800/9283
2019-11-24T19:18:48.6740212Z .................................................................................................... 1900/9283
2019-11-24T19:19:02.4797170Z ..............iiiii................................................................................. 2000/9283
2019-11-24T19:19:12.0759082Z .................................................................................................... 2200/9283
2019-11-24T19:19:14.5132691Z .................................................................................................... 2300/9283
2019-11-24T19:19:19.5806041Z .................................................................................................... 2400/9283
2019-11-24T19:19:40.4875444Z .................................................................................................... 2500/9283
---
2019-11-24T19:22:17.9613817Z ..............i...............i..................................................................... 4800/9283
2019-11-24T19:22:28.0799556Z .................................................................................................... 4900/9283
2019-11-24T19:22:33.5992879Z .................................................................................................... 5000/9283
2019-11-24T19:22:43.0067459Z .................................................................................................... 5100/9283
2019-11-24T19:22:49.0362380Z ...................ii.ii...........i................................................................ 5200/9283
2019-11-24T19:22:58.0192648Z .................................................................................................... 5400/9283
2019-11-24T19:23:08.9657225Z .................................................................................................... 5500/9283
2019-11-24T19:23:16.7424604Z .i.................................................................................................. 5600/9283
2019-11-24T19:23:22.0910548Z .................................................................................................... 5700/9283
2019-11-24T19:23:22.0910548Z .................................................................................................... 5700/9283
2019-11-24T19:23:32.3280934Z .......................................................................................ii...i..ii... 5800/9283
2019-11-24T19:23:54.8921057Z .................................................................................................... 6000/9283
2019-11-24T19:24:02.7070735Z .................................................................................................... 6100/9283
2019-11-24T19:24:06.7174243Z .................................................................................................... 6200/9283
2019-11-24T19:24:06.7174243Z .................................................................................................... 6200/9283
2019-11-24T19:24:20.2205429Z ..........i..ii..................................................................................... 6300/9283
2019-11-24T19:24:38.9436412Z ..............................................................................i..................... 6500/9283
2019-11-24T19:24:41.2300447Z .................................................................................................... 6600/9283
2019-11-24T19:24:43.4761479Z .....................................................................i.............................. 6700/9283
2019-11-24T19:24:46.4402149Z .................................................................................................... 6800/9283
---
2019-11-24T19:29:52.4953157Z  finished in 5.864
2019-11-24T19:29:52.5153086Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-24T19:29:52.7125160Z 
2019-11-24T19:29:52.7125731Z running 157 tests
2019-11-24T19:29:55.5045285Z iiii....iii......iii..iiii...i.............................i..i..................i....i...........ii 100/157
2019-11-24T19:29:57.4866390Z .i.i..iiii..............i.........iii.i..........ii......
2019-11-24T19:29:57.4868232Z 
2019-11-24T19:29:57.4872267Z  finished in 4.972
2019-11-24T19:29:57.5059957Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-24T19:29:57.6760689Z 
---
2019-11-24T19:29:59.6491716Z  finished in 2.143
2019-11-24T19:29:59.6673053Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-24T19:29:59.8200237Z 
2019-11-24T19:29:59.8200403Z running 9 tests
2019-11-24T19:29:59.8205126Z iiiiiiiii
2019-11-24T19:29:59.8205525Z 
2019-11-24T19:29:59.8205565Z  finished in 0.153
2019-11-24T19:29:59.8374078Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-24T19:30:00.0184575Z 
---
2019-11-24T19:30:19.1587450Z  finished in 19.321
2019-11-24T19:30:19.2043167Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-24T19:30:19.4099998Z 
2019-11-24T19:30:19.4100171Z running 124 tests
2019-11-24T19:30:43.3823670Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i....ii...i.......ii 100/124
2019-11-24T19:30:48.5609215Z .i.i.i......iii.i.....ii
2019-11-24T19:30:48.5610841Z 
2019-11-24T19:30:48.5611162Z  finished in 29.356
2019-11-24T19:30:48.5619366Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-24T19:30:48.5620560Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2019-11-24T19:42:48.8489726Z test result: ok. 991 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out
2019-11-24T19:42:48.8489846Z 
2019-11-24T19:42:53.8908583Z 
2019-11-24T19:42:53.8909573Z running 2421 tests
2019-11-24T19:43:04.2320889Z ......iiiii......................................................................................... 100/2421
2019-11-24T19:43:26.4319474Z .................................................................................................... 300/2421
2019-11-24T19:43:38.6256679Z ..i................................................................................................. 400/2421
2019-11-24T19:43:38.6256679Z ..i................................................................................................. 400/2421
2019-11-24T19:43:48.4981528Z ..................................................i..i..................iiii........................ 500/2421
2019-11-24T19:44:07.1763681Z .................................................................................................... 700/2421
2019-11-24T19:44:16.9856619Z .................................................................................................... 800/2421
2019-11-24T19:44:26.9468712Z .................................................................................................... 900/2421
2019-11-24T19:44:36.8433986Z .................................................................................................... 1000/2421
---
2019-11-24T19:48:24.8639396Z 
2019-11-24T19:48:24.8640006Z running 756 tests
2019-11-24T19:48:24.8887377Z .................................................................................................... 100/756
2019-11-24T19:48:25.2706010Z .................................................................................................... 200/756
2019-11-24T19:48:25.5305278Z ..............................................thread '<unnamed>' panicked at 'explicit panic', src/libstd/io/buffered.rs:1406:17
2019-11-24T19:48:25.5424617Z ..................................................thread '<unnamed>' panicked at 'explicit panic.', src/libstd/io/stdio.rs.:854:13
2019-11-24T19:48:25.5431032Z .. 300/756
2019-11-24T19:48:27.6479562Z .................................................................................................... 500/756
2019-11-24T19:48:27.6791303Z .............thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1189:5
2019-11-24T19:48:27.6820637Z ....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1189:5
2019-11-24T19:48:27.6835851Z thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libcore/result.rs:1189:5
---
2019-11-24T19:48:39.3290861Z 
2019-11-24T19:48:39.3301151Z running 999 tests
2019-11-24T19:48:58.5592224Z i................................................................................................... 100/999
2019-11-24T19:49:09.4087232Z .................................................................................................... 200/999
2019-11-24T19:49:17.2354258Z ..................iii......i......i...i......i...................................................... 300/999
2019-11-24T19:49:22.4775641Z .................................................................................................... 400/999
2019-11-24T19:49:29.7859508Z ..........................................i..i.................................ii................... 500/999
2019-11-24T19:49:43.6730753Z .................................................................................................... 700/999
2019-11-24T19:49:43.6730753Z .................................................................................................... 700/999
2019-11-24T19:49:50.7871376Z .........................iiii....................................................................... 800/999
2019-11-24T19:50:05.3420964Z .................................................................................................... 900/999
2019-11-24T19:50:12.2980461Z ...............................................iiii................................................
2019-11-24T19:50:12.2983502Z 
2019-11-24T19:50:12.3086887Z  finished in 185.943
2019-11-24T19:50:12.3104103Z Testing term stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-24T19:50:12.5367231Z    Compiling term v0.0.0 (/checkout/src/libterm)
---
2019-11-24T20:05:47.0916191Z     Checking core v0.0.0 (/checkout/src/libcore)
2019-11-24T20:06:06.0588671Z     Checking rustc-std-workspace-core v1.99.0 (/checkout/src/tools/rustc-std-workspace-core)
2019-11-24T20:06:06.0944287Z     Checking compiler_builtins v0.1.18
2019-11-24T20:06:07.1693668Z  Documenting alloc v0.0.0 (/checkout/src/liballoc)
2019-11-24T20:06:09.2296379Z error: `[from_raw]` cannot be resolved, ignoring it...
2019-11-24T20:06:09.2298131Z     --> src/liballoc/rc.rs:1708:52
2019-11-24T20:06:09.2298867Z      |
2019-11-24T20:06:09.2299654Z 1708 |     /// The pointer must have originated from the [`from_raw`] (or [`as_raw`], provided there was
2019-11-24T20:06:09.2301178Z      |
2019-11-24T20:06:09.2301791Z note: lint level defined here
2019-11-24T20:06:09.2302501Z     --> src/liballoc/lib.rs:70:9
2019-11-24T20:06:09.2303106Z      |
2019-11-24T20:06:09.2303106Z      |
2019-11-24T20:06:09.2303810Z 70   | #![deny(intra_doc_link_resolution_failure)] // rustdoc is run without -D warnings
2019-11-24T20:06:09.2305204Z      = help: to escape `[` and `]` characters, just add '\' before them like `\[` or `\]`
2019-11-24T20:06:09.2305533Z 
2019-11-24T20:06:09.3488816Z error: aborting due to previous error
2019-11-24T20:06:09.3489246Z 
2019-11-24T20:06:09.3489246Z 
2019-11-24T20:06:09.3741839Z error: Could not document `alloc`.
2019-11-24T20:06:09.3742514Z 
2019-11-24T20:06:09.3742761Z Caused by:
2019-11-24T20:06:09.3744944Z   process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustdoc --edition=2018 --crate-type lib --crate-name alloc src/liballoc/lib.rs --target x86_64-unknown-linux-gnu -o /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/doc --cfg 'feature="compiler-builtins-c"' --error-format=json --json=diagnostic-rendered-ansi --markdown-css rust.css --markdown-no-toc --generate-redirect-pages --resource-suffix 1.41.0 --index-page /checkout/src/doc/index.md -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/release/deps --extern compiler_builtins=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release/deps/libcompiler_builtins-470bf7eb02796b3e.rmeta --extern core=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release/deps/libcore-bbe72a0febce0919.rmeta` (exit code: 1)
2019-11-24T20:06:09.3764552Z 
2019-11-24T20:06:09.3764552Z 
2019-11-24T20:06:09.3765810Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustdoc" "-Zconfig-profile" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "2" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/src/libtest/Cargo.toml" "-Z" "unstable-options" "-p" "alloc" "--" "--markdown-css" "rust.css" "--markdown-no-toc" "--generate-redirect-pages" "--resource-suffix" "1.41.0" "--index-page" "/checkout/src/doc/index.md"
2019-11-24T20:06:09.3766018Z 
2019-11-24T20:06:09.3766056Z 
2019-11-24T20:06:09.3777491Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-11-24T20:06:09.3778666Z Build completed unsuccessfully in 1:40:52
2019-11-24T20:06:09.3778666Z Build completed unsuccessfully in 1:40:52
2019-11-24T20:06:09.3839016Z == clock drift check ==
2019-11-24T20:06:09.3854074Z   local time: Sun Nov 24 20:06:09 UTC 2019
2019-11-24T20:06:09.5368504Z   network time: Sun, 24 Nov 2019 20:06:09 GMT
2019-11-24T20:06:09.5371571Z == end clock drift check ==
2019-11-24T20:06:12.3635734Z 
2019-11-24T20:06:12.3750594Z ##[error]Bash exited with code '1'.
2019-11-24T20:06:12.3783449Z ##[section]Starting: Checkout
2019-11-24T20:06:12.3785406Z ==============================================================================
2019-11-24T20:06:12.3785460Z Task         : Get sources
2019-11-24T20:06:12.3785523Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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 @TimNN. (Feature Requests)

src/liballoc/rc.rs Outdated Show resolved Hide resolved
@RalfJung
Copy link
Member

I can add this to my queue but given that my next free week-end is sometime in January, don't expect a quick review -- sorry.

@vorner
Copy link
Contributor Author

vorner commented Nov 25, 2019

I can add this to my queue but given that my next free week-end is sometime in January, don't expect a quick review -- sorry.

There's no code changed, it's just documentation changes to avoid people getting confused by it. I believe quite anyone should be able to review this, following the discussion in the linked ticket. It's not really about some deep unsafe magic.

@RalfJung
Copy link
Member

RalfJung commented Nov 25, 2019

It's less about being able to and more about finding the time. I only have 1-2 hours of time for Rust per day (taking up almost my entire free time) and there are quite a few things that are already waiting in my queue for more than a week.

@vorner
Copy link
Contributor Author

vorner commented Nov 25, 2019

My point was that I don't think it has to be you, @RalfJung, that anyone else could take it instead.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 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.
2019-11-25T09:18:06.3283597Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-11-25T09:18:06.3479885Z ##[command]git config gc.auto 0
2019-11-25T09:18:06.3559442Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-11-25T09:18:06.3615162Z ##[command]git config --get-all http.proxy
2019-11-25T09:18:06.3776180Z ##[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/66710/merge:refs/remotes/pull/66710/merge
---
2019-11-25T10:15:30.4793924Z .................................................................................................... 1600/9290
2019-11-25T10:15:35.1468435Z .................................................................................................... 1700/9290
2019-11-25T10:15:47.9290233Z ...............................i.................................................................... 1800/9290
2019-11-25T10:15:54.5363943Z .................................................................................................... 1900/9290
2019-11-25T10:16:08.2331833Z ................iiiii............................................................................... 2000/9290
2019-11-25T10:16:18.2248991Z .................................................................................................... 2200/9290
2019-11-25T10:16:20.7268549Z .................................................................................................... 2300/9290
2019-11-25T10:16:25.7128241Z .................................................................................................... 2400/9290
2019-11-25T10:16:46.0401006Z .................................................................................................... 2500/9290
---
2019-11-25T10:19:22.4088715Z ................i...............i................................................................... 4800/9290
2019-11-25T10:19:32.5378197Z .................................................................................................... 4900/9290
2019-11-25T10:19:38.0209140Z .................................................................................................... 5000/9290
2019-11-25T10:19:47.3545957Z .................................................................................................... 5100/9290
2019-11-25T10:19:53.4058836Z .....................ii.ii...........i.............................................................. 5200/9290
2019-11-25T10:20:02.4759427Z .................................................................................................... 5400/9290
2019-11-25T10:20:13.2015244Z .................................................................................................... 5500/9290
2019-11-25T10:20:20.5602091Z ....i............................................................................................... 5600/9290
2019-11-25T10:20:26.1822166Z .................................................................................................... 5700/9290
2019-11-25T10:20:26.1822166Z .................................................................................................... 5700/9290
2019-11-25T10:20:36.4810205Z .........................................................................................ii...i..ii. 5800/9290
2019-11-25T10:20:59.0050264Z .................................................................................................... 6000/9290
2019-11-25T10:21:07.4178448Z .................................................................................................... 6100/9290
2019-11-25T10:21:11.3846849Z .................................................................................................... 6200/9290
2019-11-25T10:21:11.3846849Z .................................................................................................... 6200/9290
2019-11-25T10:21:24.7926682Z ............i..ii................................................................................... 6300/9290
2019-11-25T10:21:43.6539862Z ................................................................................i................... 6500/9290
2019-11-25T10:21:45.8761410Z .................................................................................................... 6600/9290
2019-11-25T10:21:48.0601614Z .......................................................................i............................ 6700/9290
2019-11-25T10:21:50.9294656Z .................................................................................................... 6800/9290
---
2019-11-25T10:26:56.5543139Z  finished in 5.743
2019-11-25T10:26:56.5752124Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-25T10:26:56.8034285Z 
2019-11-25T10:26:56.8034971Z running 157 tests
2019-11-25T10:26:59.6455507Z iiii....iii......iii..iiii...i.............................i..i..................i....i...........ii 100/157
2019-11-25T10:27:01.5446328Z .i.i..iiii..............i.........iii.i..........ii......
2019-11-25T10:27:01.5447559Z 
2019-11-25T10:27:01.5452417Z  finished in 4.969
2019-11-25T10:27:01.5632445Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-25T10:27:01.7340130Z 
---
2019-11-25T10:27:03.7055220Z  finished in 2.142
2019-11-25T10:27:03.7244221Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-25T10:27:03.8851792Z 
2019-11-25T10:27:03.8853462Z running 9 tests
2019-11-25T10:27:03.8854405Z iiiiiiiii
2019-11-25T10:27:03.8854932Z 
2019-11-25T10:27:03.8859257Z  finished in 0.161
2019-11-25T10:27:03.9046475Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-25T10:27:04.0815715Z 
---
2019-11-25T10:27:23.2239251Z  finished in 19.318
2019-11-25T10:27:23.2446067Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-25T10:27:23.8064648Z 
2019-11-25T10:27:23.8064856Z running 124 tests
2019-11-25T10:27:47.5243518Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i....ii...i.......ii 100/124
2019-11-25T10:27:52.3253724Z .i.i.i......iii.i.....ii
2019-11-25T10:27:52.3255213Z 
2019-11-25T10:27:52.3257096Z  finished in 29.080
2019-11-25T10:27:52.3266164Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-25T10:27:52.3266777Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2019-11-25T10:39:24.2071699Z 
2019-11-25T10:39:24.2072557Z    Doc-tests core
2019-11-25T10:39:29.1628376Z 
2019-11-25T10:39:29.1628607Z running 2421 tests
2019-11-25T10:39:39.5892021Z ......iiiii......................................................................................... 100/2421
2019-11-25T10:40:01.7126945Z .................................................................................................... 300/2421
2019-11-25T10:40:13.9598750Z ..i................................................................................................. 400/2421
2019-11-25T10:40:13.9598750Z ..i................................................................................................. 400/2421
2019-11-25T10:40:24.2345737Z ..................................................i..i..................iiii........................ 500/2421
2019-11-25T10:40:43.3049626Z .................................................................................................... 700/2421
2019-11-25T10:40:53.2680287Z .................................................................................................... 800/2421
2019-11-25T10:41:03.1647220Z .................................................................................................... 900/2421
2019-11-25T10:41:13.2617696Z .................................................................................................... 1000/2421
---
2019-11-25T10:45:02.8457423Z ..............................................thread '<unnamed>' panicked at 'explicit panic', src/libstd/io/stdio.rs:854:13
2019-11-25T10:45:02.8543499Z ....... 300/756
2019-11-25T10:45:03.0077359Z .................................................................................................... 400/756
2019-11-25T10:45:05.0742344Z .................................................................................................... 500/756
2019-11-25T10:45:05.0963450Z .............thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1189:5
2019-11-25T10:45:05.0988459Z ....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libcore/result.rs:1189:5
2019-11-25T10:45:05.1018415Z .thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs.:.1189.:.5.
2019-11-25T10:45:05.3515677Z ...........................................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1189:5
2019-11-25T10:45:05.3548231Z ....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libcore/result.rs:1189:5
2019-11-25T10:45:05.3548231Z ....thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libcore/result.rs:1189:5
2019-11-25T10:45:05.3557571Z thread '<unnamed>.' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1189:5
2019-11-25T10:45:05.3586177Z ......thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libcore/result.rs:1189:5
2019-11-25T10:45:07.4373238Z ...................thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:629:13
2019-11-25T10:45:07.4375443Z thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:584:13
2019-11-25T10:45:07.4383969Z .....thread '<unnamed>' panicked at 'test panic in inner thread to poison mutex', src/libstd/sync/mutex.rs:561:13
2019-11-25T10:45:07.4406619Z thread '<unnamed>' panicked at 'explicit panic', src/libstd/sync/mutex.rs:689:13
---
2019-11-25T10:45:16.6572100Z 
2019-11-25T10:45:16.6572344Z running 999 tests
2019-11-25T10:45:35.6271839Z i................................................................................................... 100/999
2019-11-25T10:45:46.4363978Z .................................................................................................... 200/999
2019-11-25T10:45:54.1403095Z ..................iii......i......i...i......i...................................................... 300/999
2019-11-25T10:45:59.4054317Z .................................................................................................... 400/999
2019-11-25T10:46:07.3069660Z ..........................................i..i.................................ii................... 500/999
2019-11-25T10:46:21.4789569Z .................................................................................................... 700/999
2019-11-25T10:46:21.4789569Z .................................................................................................... 700/999
2019-11-25T10:46:28.6723566Z .........................iiii....................................................................... 800/999
2019-11-25T10:46:42.9446765Z .................................................................................................... 900/999
2019-11-25T10:46:50.0329556Z ...............................................iiii................................................
2019-11-25T10:46:50.0335293Z 
2019-11-25T10:46:50.0460863Z  finished in 184.846
2019-11-25T10:46:50.0480418Z Testing term stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-11-25T10:46:50.2754672Z    Compiling term v0.0.0 (/checkout/src/libterm)
---
2019-11-25T11:03:23.6519257Z Rustbook (x86_64-unknown-linux-gnu) - edition-guide
2019-11-25T11:03:24.0168747Z Building stage0 tool linkchecker (x86_64-unknown-linux-gnu)
2019-11-25T11:03:24.1852565Z    Compiling linkchecker v0.1.0 (/checkout/src/tools/linkchecker)
2019-11-25T11:03:25.9183063Z     Finished release [optimized] target(s) in 1.89s
2019-11-25T11:03:27.4618705Z std/rc/struct.Weak.html:68: broken link fragment `#new` pointing to `std/rc/struct.Weak.html`
2019-11-25T11:03:27.4619334Z std/rc/struct.Weak.html:76: broken link fragment `#new` pointing to `std/rc/struct.Weak.html`
2019-11-25T11:03:33.1672325Z alloc/rc/struct.Weak.html:68: broken link fragment `#new` pointing to `alloc/rc/struct.Weak.html`
2019-11-25T11:03:33.1673132Z alloc/rc/struct.Weak.html:76: broken link fragment `#new` pointing to `alloc/rc/struct.Weak.html`
2019-11-25T11:03:34.1784859Z thread 'main' panicked at 'found some broken links', src/tools/linkchecker/main.rs:41:9
2019-11-25T11:03:34.1792729Z 
2019-11-25T11:03:34.1793000Z 
2019-11-25T11:03:34.1793662Z 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"
2019-11-25T11:03:34.1793853Z expected success, got: exit code: 101
---
2019-11-25T11:03:34.1865130Z   local time: Mon Nov 25 11:03:34 UTC 2019
2019-11-25T11:03:34.4652022Z   network time: Mon, 25 Nov 2019 11:03:34 GMT
2019-11-25T11:03:34.4655351Z == end clock drift check ==
2019-11-25T11:03:37.8741284Z 
2019-11-25T11:03:37.8861369Z ##[error]Bash exited with code '1'.
2019-11-25T11:03:37.8893932Z ##[section]Starting: Checkout
2019-11-25T11:03:37.8895621Z ==============================================================================
2019-11-25T11:03:37.8895685Z Task         : Get sources
2019-11-25T11:03:37.8896292Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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 @TimNN. (Feature Requests)

@RalfJung
Copy link
Member

What about r? @SimonSapin

@rust-highfive rust-highfive assigned SimonSapin and unassigned RalfJung Nov 25, 2019
@SimonSapin
Copy link
Contributor

Sorry, I’m in a similar situation as Ralf. I’ve removed myself (a while ago) from the review auto-assignment because of limited bandwidth.

I don’t really have a suggestion for more precise wording here. r? @Centril

@rust-highfive rust-highfive assigned Centril and unassigned SimonSapin Nov 29, 2019
src/liballoc/sync.rs Outdated Show resolved Hide resolved
src/liballoc/rc.rs Outdated Show resolved Hide resolved
@Centril
Copy link
Contributor

Centril commented Nov 30, 2019

Also, can you squash the commits?

Copy link
Member

@dtolnay dtolnay left a comment

Choose a reason for hiding this comment

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

Looks good to me once squashed, r=me.

@Dylan-DPC-zz Dylan-DPC-zz 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-review Status: Awaiting review from the assignee but also interested parties. labels Dec 1, 2019
@vorner
Copy link
Contributor Author

vorner commented Dec 1, 2019

Thank you. I've included the suggestions and squashed.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-6.0 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.
2019-12-01T15:56:51.9767474Z ##[command]git remote add origin https://github.com/rust-lang/rust
2019-12-01T15:56:52.0014415Z ##[command]git config gc.auto 0
2019-12-01T15:56:52.0084806Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2019-12-01T15:56:52.0132815Z ##[command]git config --get-all http.proxy
2019-12-01T15:56:52.0313015Z ##[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/66710/merge:refs/remotes/pull/66710/merge
---
2019-12-01T16:51:59.7888991Z .................................................................................................... 1600/9316
2019-12-01T16:52:04.3242825Z .................................................................................................... 1700/9316
2019-12-01T16:52:16.2643748Z ........................................i........................................................... 1800/9316
2019-12-01T16:52:23.9183306Z .................................................................................................... 1900/9316
2019-12-01T16:52:36.6556494Z .........................iiiii...................................................................... 2000/9316
2019-12-01T16:52:46.5210858Z .................................................................................................... 2200/9316
2019-12-01T16:52:48.9755810Z .................................................................................................... 2300/9316
2019-12-01T16:52:53.8323658Z .................................................................................................... 2400/9316
2019-12-01T16:53:13.4395158Z .................................................................................................... 2500/9316
---
2019-12-01T16:55:43.2307848Z ...........................i...............i........................................................ 4800/9316
2019-12-01T16:55:53.1378334Z .................................................................................................... 4900/9316
2019-12-01T16:55:58.8747063Z .................................................................................................... 5000/9316
2019-12-01T16:56:06.4921436Z .................................................................................................... 5100/9316
2019-12-01T16:56:13.6449202Z .................................ii.ii...........i.................................................. 5200/9316
2019-12-01T16:56:22.6937282Z .................................................................................................... 5400/9316
2019-12-01T16:56:32.1147264Z .................................................................................................... 5500/9316
2019-12-01T16:56:39.1756948Z ...............i.................................................................................... 5600/9316
2019-12-01T16:56:44.9782186Z .................................................................................................... 5700/9316
2019-12-01T16:56:44.9782186Z .................................................................................................... 5700/9316
2019-12-01T16:56:55.4476218Z .................................................................................................... 5800/9316
2019-12-01T16:57:06.8827934Z .ii...i..ii...........i............................................................................. 5900/9316
2019-12-01T16:57:22.9181299Z .................................................................................................... 6100/9316
2019-12-01T16:57:27.4113346Z .................................................................................................... 6200/9316
2019-12-01T16:57:27.4113346Z .................................................................................................... 6200/9316
2019-12-01T16:57:39.1007958Z ........................i..ii....................................................................... 6300/9316
2019-12-01T16:57:57.7246310Z ...............................................................................................i.... 6500/9316
2019-12-01T16:57:59.8516691Z .................................................................................................... 6600/9316
2019-12-01T16:58:01.9734039Z ......................................................................................i............. 6700/9316
2019-12-01T16:58:04.4598571Z .................................................................................................... 6800/9316
---
2019-12-01T17:02:54.0935532Z  finished in 5.550
2019-12-01T17:02:54.1111364Z Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-12-01T17:02:54.2696279Z 
2019-12-01T17:02:54.2696419Z running 164 tests
2019-12-01T17:02:56.9718424Z iiii....iii......iii..iiii...i.............................i..i..................i....i...........ii 100/164
2019-12-01T17:02:58.7841240Z .i.i..iiii..iiiiiii............i.........iii.i..........ii......
2019-12-01T17:02:58.7841801Z 
2019-12-01T17:02:58.7841855Z  finished in 4.672
2019-12-01T17:02:58.8034117Z Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-12-01T17:02:58.9813444Z 
---
2019-12-01T17:03:00.8485033Z  finished in 2.045
2019-12-01T17:03:00.8658142Z Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-12-01T17:03:01.0059691Z 
2019-12-01T17:03:01.0060550Z running 9 tests
2019-12-01T17:03:01.0061497Z iiiiiiiii
2019-12-01T17:03:01.0062102Z 
2019-12-01T17:03:01.0062259Z  finished in 0.140
2019-12-01T17:03:01.0221204Z Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-12-01T17:03:01.1806776Z 
---
2019-12-01T17:03:19.5273993Z  finished in 18.505
2019-12-01T17:03:19.5515289Z Check compiletest suite=debuginfo mode=debuginfo-gdb+lldb (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-12-01T17:03:19.7411181Z 
2019-12-01T17:03:19.7411323Z running 124 tests
2019-12-01T17:03:42.6624829Z .iiiii...i.....i..i...i..i.i.i..i.ii..i.i.....i..i....ii..........iiii..........i....ii...i.......ii 100/124
2019-12-01T17:03:47.3451054Z .i.i.i......iii.i.....ii
2019-12-01T17:03:47.3452129Z 
2019-12-01T17:03:47.3454944Z  finished in 27.794
2019-12-01T17:03:47.3473105Z Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-12-01T17:03:47.3476294Z Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---
2019-12-01T17:14:39.7359543Z 
2019-12-01T17:14:39.7363252Z    Doc-tests core
2019-12-01T17:14:44.2966908Z 
2019-12-01T17:14:44.2967922Z running 2432 tests
2019-12-01T17:14:54.2834927Z ......iiiii......................................................................................... 100/2432
2019-12-01T17:15:14.9616365Z .................................................................................................... 300/2432
2019-12-01T17:15:26.2131913Z ..i................................................................................................. 400/2432
2019-12-01T17:15:26.2131913Z ..i................................................................................................. 400/2432
2019-12-01T17:15:35.7055104Z ..................................................i..i..................iiii........................ 500/2432
2019-12-01T17:15:53.7810279Z .................................................................................................... 700/2432
2019-12-01T17:16:03.5706324Z .................................................................................................... 800/2432
2019-12-01T17:16:13.4216600Z .................................................................................................... 900/2432
2019-12-01T17:16:22.9977094Z .................................................................................................... 1000/2432
---
2019-12-01T17:20:15.0311115Z 
2019-12-01T17:20:15.0311785Z running 999 tests
2019-12-01T17:20:32.6257732Z i................................................................................................... 100/999
2019-12-01T17:20:43.0395513Z .................................................................................................... 200/999
2019-12-01T17:20:50.8339013Z ...................iii.....i......i...i......i...................................................... 300/999
2019-12-01T17:20:55.8704478Z .................................................................................................... 400/999
2019-12-01T17:21:03.1089892Z ..........................................i..i.................................ii................... 500/999
2019-12-01T17:21:16.6388448Z .................................................................................................... 700/999
2019-12-01T17:21:16.6388448Z .................................................................................................... 700/999
2019-12-01T17:21:23.4094094Z .........................iiii....................................................................... 800/999
2019-12-01T17:21:37.1794205Z .................................................................................................... 900/999
2019-12-01T17:21:43.9804191Z ...............................................iiii................................................
2019-12-01T17:21:43.9851371Z 
2019-12-01T17:21:43.9851438Z  finished in 174.929
2019-12-01T17:21:43.9852162Z Testing term stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
2019-12-01T17:21:44.0592223Z    Compiling term v0.0.0 (/checkout/src/libterm)
---
2019-12-01T17:35:54.0370876Z     Checking core v0.0.0 (/checkout/src/libcore)
2019-12-01T17:36:11.5641792Z     Checking rustc-std-workspace-core v1.99.0 (/checkout/src/tools/rustc-std-workspace-core)
2019-12-01T17:36:11.5975930Z     Checking compiler_builtins v0.1.18
2019-12-01T17:36:12.5217582Z  Documenting alloc v0.0.0 (/checkout/src/liballoc)
2019-12-01T17:36:14.3809601Z error: `[from_raw]` cannot be resolved, ignoring it.
2019-12-01T17:36:14.3810012Z     --> src/liballoc/rc.rs:1737:52
2019-12-01T17:36:14.3810305Z      |
2019-12-01T17:36:14.3812232Z 1737 |     /// The pointer must have originated from the [`from_raw`] (or [`as_raw`], provided there was
2019-12-01T17:36:14.3814999Z      |
2019-12-01T17:36:14.3815266Z note: lint level defined here
2019-12-01T17:36:14.3815567Z     --> src/liballoc/lib.rs:70:9
2019-12-01T17:36:14.3815804Z      |
2019-12-01T17:36:14.3815804Z      |
2019-12-01T17:36:14.3816167Z 70   | #![deny(intra_doc_link_resolution_failure)] // rustdoc is run without -D warnings
2019-12-01T17:36:14.3816876Z      = help: to escape `[` and `]` characters, just add '\' before them like `\[` or `\]`
2019-12-01T17:36:14.3816934Z 
2019-12-01T17:36:14.4941399Z error: aborting due to previous error
2019-12-01T17:36:14.4942429Z 
2019-12-01T17:36:14.4942429Z 
2019-12-01T17:36:14.5140288Z error: Could not document `alloc`.
2019-12-01T17:36:14.5140601Z 
2019-12-01T17:36:14.5140757Z Caused by:
2019-12-01T17:36:14.5142025Z   process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustdoc --edition=2018 --crate-type lib --crate-name alloc src/liballoc/lib.rs --target x86_64-unknown-linux-gnu -o /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/doc --cfg 'feature="compiler-builtins-c"' --error-format=json --json=diagnostic-rendered-ansi --markdown-css rust.css --markdown-no-toc --generate-redirect-pages --resource-suffix 1.41.0 --index-page /checkout/src/doc/index.md -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/release/deps --extern compiler_builtins=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release/deps/libcompiler_builtins-470bf7eb02796b3e.rmeta --extern core=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-std/x86_64-unknown-linux-gnu/release/deps/libcore-bbe72a0febce0919.rmeta` (exit code: 1)
2019-12-01T17:36:14.5159505Z 
2019-12-01T17:36:14.5159505Z 
2019-12-01T17:36:14.5163110Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "rustdoc" "-Zconfig-profile" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "2" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/src/libtest/Cargo.toml" "-Z" "unstable-options" "-p" "alloc" "--" "--markdown-css" "rust.css" "--markdown-no-toc" "--generate-redirect-pages" "--resource-suffix" "1.41.0" "--index-page" "/checkout/src/doc/index.md"
2019-12-01T17:36:14.5164610Z 
2019-12-01T17:36:14.5164759Z 
2019-12-01T17:36:14.5173648Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2019-12-01T17:36:14.5173883Z Build completed unsuccessfully in 1:33:28
2019-12-01T17:36:14.5173883Z Build completed unsuccessfully in 1:33:28
2019-12-01T17:36:14.5238710Z == clock drift check ==
2019-12-01T17:36:14.5253575Z   local time: Sun Dec  1 17:36:14 UTC 2019
2019-12-01T17:36:14.7927591Z   network time: Sun, 01 Dec 2019 17:36:14 GMT
2019-12-01T17:36:14.7932702Z == end clock drift check ==
2019-12-01T17:36:17.6560744Z 
2019-12-01T17:36:17.6714759Z ##[error]Bash exited with code '1'.
2019-12-01T17:36:17.6753781Z ##[section]Starting: Checkout
2019-12-01T17:36:17.6755664Z ==============================================================================
2019-12-01T17:36:17.6755714Z Task         : Get sources
2019-12-01T17:36:17.6755758Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.

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 @TimNN. (Feature Requests)

@vorner
Copy link
Contributor Author

vorner commented Dec 1, 2019

Ups, I've force-pushed an older version ☹. I'll fix it once I get to the other computer where the right version still lives.

@Centril
Copy link
Contributor

Centril commented Dec 1, 2019

Looks good to me also, but r? @dtolnay

@vorner
Copy link
Contributor Author

vorner commented Dec 3, 2019

I've just squashed and force-pushed the correct version including all the link fixes. 🤞

@dtolnay
Copy link
Member

dtolnay commented Dec 3, 2019

Thanks!

@bors r+ rollup

@bors
Copy link
Contributor

bors commented Dec 3, 2019

📌 Commit 196cbfb4a6d75b5f6a01d2d33b2e41e02a1ba5f5 has been approved by dtolnay

@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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Dec 3, 2019
src/liballoc/rc.rs Outdated Show resolved Hide resolved
src/liballoc/rc.rs Outdated Show resolved Hide resolved
src/liballoc/sync.rs Outdated Show resolved Hide resolved
src/liballoc/rc.rs Outdated Show resolved Hide resolved
src/liballoc/sync.rs Outdated Show resolved Hide resolved
src/liballoc/rc.rs Outdated Show resolved Hide resolved
@RalfJung
Copy link
Member

RalfJung commented Dec 3, 2019

Let's fix those typos before landing.

@bors r-

@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 Dec 3, 2019
Clarify it is OK to pass a pointer that never owned a weak count (one
from Weak::new) back into it as it was created from it. Relates to
discussion in rust-lang#60728.
@RalfJung
Copy link
Member

RalfJung commented Dec 5, 2019

Thanks!

@bors r=dtolnay

@bors
Copy link
Contributor

bors commented Dec 5, 2019

📌 Commit 4731510 has been approved by dtolnay

@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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Dec 5, 2019
Centril added a commit to Centril/rust that referenced this pull request Dec 5, 2019
…tolnay

weak-into-raw: Clarify some details in Safety

Clarify it is OK to pass a pointer that never owned a weak count (one
from Weak::new) back into it as it was created from it. Relates to
discussion in rust-lang#60728.

@CAD97 Do you want to have a look at the new docs?
bors added a commit that referenced this pull request Dec 5, 2019
Rollup of 9 pull requests

Successful merges:

 - #66710 (weak-into-raw: Clarify some details in Safety)
 - #66863 (Check break target availability when checking breaks with values)
 - #67002 (Fix documentation of pattern for str::matches())
 - #67005 (capitalize Rust)
 - #67010 (Accurately portray raw identifiers in error messages)
 - #67011 (Include a span in more `expected...found` notes)
 - #67044 (E0023: handle expected != tuple pattern type)
 - #67045 (rustc_parser: cleanup imports)
 - #67055 (Make const-qualification look at more `const fn`s)

Failed merges:

r? @ghost
@bors bors merged commit 4731510 into rust-lang:master Dec 6, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

10 participants