Skip to content

Commit 1a1a6b8

Browse files
ivarflakstadizagawd
authored andcommitted
Restructure ui tests to highlight unsound path and how we no longer hit it
1 parent 0df3f97 commit 1a1a6b8

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

tests/ui/any/downcast_trait_err1.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,13 @@ fn store(x: &'static Box<i32>) {
2222
fn main() {
2323
let data = Box::new(Box::new(1i32));
2424
let fn_ptr: fn(&'static Box<i32>) = store;
25-
downcast_trait::<_, dyn Trait>(&fn_ptr)
26-
.unwrap()
27-
.call(&*data);
28-
drop(data);
29-
println!("{}", STORAGE.get().unwrap());
25+
let dt = downcast_trait::<_, dyn Trait>(&fn_ptr);
26+
if let Some(dt) = dt {
27+
// unsound path
28+
dt.call(&*data);
29+
drop(data);
30+
println!("{}", STORAGE.get().unwrap());
31+
} else {
32+
println!("success")
33+
}
3034
}

tests/ui/any/downcast_trait_err2.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,13 @@ fn store(x: &'static Box<i32>) {
2020

2121
fn main() {
2222
let data = Box::new(Box::new(1i32));
23-
downcast_trait::<_, dyn Trait<fn(&'static Box<i32>)>>(&())
24-
.unwrap()
25-
.call(store, &*data);
26-
drop(data);
27-
println!("{}", STORAGE.get().unwrap());
23+
let dt = downcast_trait::<_, dyn Trait<fn(&'static Box<i32>)>>(&());
24+
if let Some(dt) = dt {
25+
// unsound path
26+
dt.call(store, &*data);
27+
drop(data);
28+
println!("{}", STORAGE.get().unwrap());
29+
} else {
30+
println!("success")
31+
}
2832
}

0 commit comments

Comments
 (0)