// check-pass const unsafe fn ret_i32_no_unsafe() -> i32 { 42 } const unsafe fn ret_null_ptr_no_unsafe() -> *const T { std::ptr::null() } const unsafe fn ret_null_mut_ptr_no_unsafe() -> *mut T { std::ptr::null_mut() } const fn no_unsafe() { unsafe {} } const fn call_unsafe_const_fn() -> i32 { unsafe { ret_i32_no_unsafe() } } const fn call_unsafe_generic_const_fn() -> *const String { unsafe { ret_null_ptr_no_unsafe::() } } const fn call_unsafe_generic_cell_const_fn() -> *const Vec> { unsafe { ret_null_mut_ptr_no_unsafe::>>() } } const unsafe fn call_unsafe_const_unsafe_fn() -> i32 { unsafe { ret_i32_no_unsafe() } } const unsafe fn call_unsafe_generic_const_unsafe_fn() -> *const String { unsafe { ret_null_ptr_no_unsafe::() } } const unsafe fn call_unsafe_generic_cell_const_unsafe_fn() -> *const Vec> { unsafe { ret_null_mut_ptr_no_unsafe::>>() } } const unsafe fn call_unsafe_const_unsafe_fn_immediate() -> i32 { ret_i32_no_unsafe() } const unsafe fn call_unsafe_generic_const_unsafe_fn_immediate() -> *const String { ret_null_ptr_no_unsafe::() } const unsafe fn call_unsafe_generic_cell_const_unsafe_fn_immediate() -> *const Vec> { ret_null_mut_ptr_no_unsafe::>>() } fn main() {}