diff options
Diffstat (limited to 'tests/ui/nll/mir_check_cast_unsafe_fn.rs')
-rw-r--r-- | tests/ui/nll/mir_check_cast_unsafe_fn.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/ui/nll/mir_check_cast_unsafe_fn.rs b/tests/ui/nll/mir_check_cast_unsafe_fn.rs new file mode 100644 index 000000000..8f55bedfb --- /dev/null +++ b/tests/ui/nll/mir_check_cast_unsafe_fn.rs @@ -0,0 +1,11 @@ +#![allow(dead_code)] + +fn bar<'a>(input: &'a u32, f: fn(&'a u32) -> &'a u32) -> &'static u32 { + // Here the NLL checker must relate the types in `f` to the types + // in `g`. These are related via the `UnsafeFnPointer` cast. + let g: unsafe fn(_) -> _ = f; + unsafe { g(input) } + //~^ ERROR lifetime may not live long enough +} + +fn main() {} |