diff options
| author | Erik Desjardins <erikdesjardins@users.noreply.github.com> | 2020-07-19 14:07:21 -0400 |
|---|---|---|
| committer | Erik Desjardins <erikdesjardins@users.noreply.github.com> | 2020-07-28 15:45:25 -0400 |
| commit | c596e01b8ea34bb46444005425cd5aa825515f7b (patch) | |
| tree | 2f13ceb8d18f2f177767f5b4d043e9f02f55a570 /src | |
| parent | 98efae87607aabd7c30b879befe61bf9c29eb978 (diff) | |
| download | rust-c596e01b8ea34bb46444005425cd5aa825515f7b.tar.gz rust-c596e01b8ea34bb46444005425cd5aa825515f7b.zip | |
add track_caller to RefCell::{borrow, borrow_mut}
So panic messages point at the offending borrow.
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/rfc-2091-track-caller/std-panic-locations.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs b/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs index 35a2956ee26..d6a3a760b3e 100644 --- a/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs +++ b/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs @@ -7,8 +7,10 @@ //! Test that panic locations for `#[track_caller]` functions in std have the correct //! location reported. +use std::cell::RefCell; use std::collections::{BTreeMap, HashMap, VecDeque}; use std::ops::{Index, IndexMut}; +use std::panic::{AssertUnwindSafe, UnwindSafe}; fn main() { // inspect the `PanicInfo` we receive to ensure the right file is the source @@ -20,7 +22,7 @@ fn main() { } })); - fn assert_panicked(f: impl FnOnce() + std::panic::UnwindSafe) { + fn assert_panicked(f: impl FnOnce() + UnwindSafe) { std::panic::catch_unwind(f).unwrap_err(); } @@ -57,4 +59,9 @@ fn main() { let weirdo: VecDeque<()> = Default::default(); assert_panicked(|| { weirdo.index(1); }); assert_panicked(|| { weirdo[1]; }); + + let refcell: RefCell<()> = Default::default(); + let _conflicting = refcell.borrow_mut(); + assert_panicked(AssertUnwindSafe(|| { refcell.borrow(); })); + assert_panicked(AssertUnwindSafe(|| { refcell.borrow_mut(); })); } |
