mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-02 07:22:42 +00:00
408eeae59d
Rename `static_mut_ref` lint to `static_mut_refs`.
29 lines
928 B
Rust
29 lines
928 B
Rust
//@ 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<u32> = OnceLock::new();
|
|
static LAZY_INIT_REF: &[&OnceLock<u32>] = &[&LAZY_INIT];
|
|
|
|
fn main() {}
|