aboutsummaryrefslogtreecommitdiff
path: root/embassy-sync/tests/ui/sync_impl/lazy_lock_function.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-sync/tests/ui/sync_impl/lazy_lock_function.rs')
-rw-r--r--embassy-sync/tests/ui/sync_impl/lazy_lock_function.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/embassy-sync/tests/ui/sync_impl/lazy_lock_function.rs b/embassy-sync/tests/ui/sync_impl/lazy_lock_function.rs
new file mode 100644
index 000000000..c6e6f7e64
--- /dev/null
+++ b/embassy-sync/tests/ui/sync_impl/lazy_lock_function.rs
@@ -0,0 +1,15 @@
1use embassy_sync::lazy_lock::LazyLock;
2
3fn main() {
4 let x = 128u8;
5 let x_ptr: *const u8 = core::ptr::addr_of!(x);
6
7 let closure_capturing_non_sync_variable = || {
8 unsafe {
9 core::ptr::read(x_ptr)
10 }
11 };
12
13 // This should fail to compile because the closure captures a non-Sync variable: x_ptr.
14 let _lazy_u8: LazyLock<u8, _> = LazyLock::new(closure_capturing_non_sync_variable);
15}