diff options
| author | bors <bors@rust-lang.org> | 2021-01-18 14:36:30 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-01-18 14:36:30 +0000 |
| commit | 5e91c4ecc09312d8b63d250a432b0f3ef83f1df7 (patch) | |
| tree | 994a9e3c43f68368785e414945aa8949e2493c25 /compiler/rustc_data_structures | |
| parent | 66eb9821666e0672a69a998d2331733c7a8996a5 (diff) | |
| parent | 33d184bfd093460d56a10c8a151b66147d2b4041 (diff) | |
| download | rust-5e91c4ecc09312d8b63d250a432b0f3ef83f1df7.tar.gz rust-5e91c4ecc09312d8b63d250a432b0f3ef83f1df7.zip | |
Auto merge of #81165 - KodrAus:rollup-s7llxis, r=KodrAus
Rollup of 12 pull requests Successful merges: - #81038 (Update Clippy) - #81071 (rustc_parse_format: Fix character indices in find_skips) - #81100 (prevent potential bug in `encode_with_shorthand`.) - #81105 (Initialize a few variables directly) - #81116 (ConstProp: Copy body span instead of querying it) - #81121 (Avoid logging the whole MIR body in SimplifyCfg) - #81123 (Update cmp.rs) - #81125 (Add track_caller to .steal()) - #81128 (validation test: turn some const_err back into validation failures) - #81131 (Edit rustc_middle::ty::cast docs) - #81142 (Replace let Some(..) = with .is_some()) - #81153 (Remove unused linkcheck exceptions) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_data_structures')
| -rw-r--r-- | compiler/rustc_data_structures/src/steal.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/rustc_data_structures/src/steal.rs b/compiler/rustc_data_structures/src/steal.rs index e532a84cea3..7f9e4160fcd 100644 --- a/compiler/rustc_data_structures/src/steal.rs +++ b/compiler/rustc_data_structures/src/steal.rs @@ -30,6 +30,7 @@ impl<T> Steal<T> { Steal { value: RwLock::new(Some(value)) } } + #[track_caller] pub fn borrow(&self) -> MappedReadGuard<'_, T> { ReadGuard::map(self.value.borrow(), |opt| match *opt { None => panic!("attempted to read from stolen value"), @@ -37,10 +38,11 @@ impl<T> Steal<T> { }) } + #[track_caller] pub fn steal(&self) -> T { let value_ref = &mut *self.value.try_write().expect("stealing value which is locked"); let value = value_ref.take(); - value.expect("attempt to read from stolen value") + value.expect("attempt to steal from stolen value") } } |
