rust/library
bors 47a90f4520 Auto merge of #85535 - dtolnay:weakdangle, r=kennytm
Weak's type parameter may dangle on drop

Way back in 34076bc0c9, #\[may_dangle\] was added to Rc\<T\> and Arc\<T\>'s Drop impls. That appears to have been because a test added in #28929 used Arc and Rc with dangling references at drop time. However, Weak was not covered by that test, and therefore no #\[may_dangle\] was forced to be added at the time.

As far as dropping, Weak has *even less need* to interact with the T than Rc and Arc do. Roughly speaking #\[may_dangle\] describes generic parameters that the outer type's Drop impl does not interact with except by possibly dropping them; no other interaction (such as trait method calls on the generic type) is permissible. It's clear this applies to Rc's and Arc's drop impl, which sometimes drop T but otherwise do not interact with one. It applies *even more* to Weak. Dropping a Weak cannot ever cause T's drop impl to run. Either there are strong references still in existence, in which case better not drop the T. Or there are no strong references still in existence, in which case the T would already have been dropped previously by the drop of the last strong count.
2021-05-26 01:17:02 +00:00
..
alloc Auto merge of #85535 - dtolnay:weakdangle, r=kennytm 2021-05-26 01:17:02 +00:00
backtrace@221483ebaf Update backtrace to 0.3.57 2021-04-25 13:48:03 -07:00
core Rollup merge of #85644 - tialaramex:master, r=dtolnay 2021-05-25 13:05:15 +02:00
panic_abort android: set abort message 2021-04-09 15:33:43 +02:00
panic_unwind Change 'NULL' to 'null' 2021-05-02 17:46:00 -06:00
proc_macro remove cfg(bootstrap) 2021-05-24 11:07:48 -04:00
profiler_builtins update cc crate 2021-05-12 00:55:03 +02:00
rtstartup Bump bootstrap compiler to 1.50 beta 2020-12-30 09:27:19 -05:00
rustc-std-workspace-alloc mv std libs to library/ 2020-07-27 19:51:13 -05:00
rustc-std-workspace-core Fix rustc-std-workspace-core documentation 2020-12-20 15:23:21 +08:00
rustc-std-workspace-std mv std libs to library/ 2020-07-27 19:51:13 -05:00
std Auto merge of #84985 - pietroalbini:bootstrap-1.54, r=Mark-Simulacrum 2021-05-25 05:48:00 +00:00
stdarch@37d6e18863 Update stdarch to fix x86 byte shift intrinsics 2021-05-20 01:51:05 +01:00
term Allow/fix non_fmt_panic in tests. 2021-02-03 23:15:45 +01:00
test Expose Concurrent (private type in public i'face) 2021-05-14 13:28:56 +01:00
unwind update cc crate 2021-05-12 00:55:03 +02:00