X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=tests%2Fui%2For_fun_call.rs;h=8eadc6ce3b47acace2c3fcf4cea29fd2db831b92;hb=2938ffd0d94d93893ca32202cb3b6a6b69559bfb;hp=afaf92961b0274f75d9e5ffbbd2f40b606fb876a;hpb=1ad54642008b185f5691e5cac1148147d29fc00f;p=rust.git diff --git a/tests/ui/or_fun_call.rs b/tests/ui/or_fun_call.rs index afaf92961b0..8eadc6ce3b4 100644 --- a/tests/ui/or_fun_call.rs +++ b/tests/ui/or_fun_call.rs @@ -155,16 +155,24 @@ fn f() -> Option<()> { } mod issue6675 { + unsafe fn ptr_to_ref<'a, T>(p: *const T) -> &'a T { + #[allow(unused)] + let x = vec![0; 1000]; // future-proofing, make this function expensive. + &*p + } + unsafe fn foo() { - let mut s = "test".to_owned(); - None.unwrap_or(s.as_mut_vec()); + let s = "test".to_owned(); + let s = &s as *const _; + None.unwrap_or(ptr_to_ref(s)); } fn bar() { - let mut s = "test".to_owned(); - None.unwrap_or(unsafe { s.as_mut_vec() }); + let s = "test".to_owned(); + let s = &s as *const _; + None.unwrap_or(unsafe { ptr_to_ref(s) }); #[rustfmt::skip] - None.unwrap_or( unsafe { s.as_mut_vec() } ); + None.unwrap_or( unsafe { ptr_to_ref(s) } ); } }