//@ check-pass #![allow(non_camel_case_types, non_upper_case_globals, static_mut_refs)] pub struct wl_interface { pub version: i32, } pub struct Interface { pub other_interfaces: &'static [&'static Interface], pub c_ptr: Option<&'static wl_interface>, } pub static mut wl_callback_interface: wl_interface = wl_interface { version: 0 }; pub static WL_CALLBACK_INTERFACE: Interface = Interface { other_interfaces: &[], c_ptr: Some(unsafe { &wl_callback_interface }) }; // This static contains a promoted that points to a static that points to a mutable static. pub static WL_SURFACE_INTERFACE: Interface = Interface { other_interfaces: &[&WL_CALLBACK_INTERFACE], c_ptr: None }; // And another variant of the same thing, this time with interior mutability. use std::sync::OnceLock; static LAZY_INIT: OnceLock = OnceLock::new(); static LAZY_INIT_REF: &[&OnceLock] = &[&LAZY_INIT]; fn main() {}