| //! Ensure that writing to `S` while initializing `S` errors. | |
| //! Regression test for <https://github.com/rust-lang/rust/issues/142404>. | |
| #![allow(dead_code)] | |
| struct Foo { | |
| x: i32, | |
| y: (), | |
| } | |
| static S: Foo = Foo { | |
| x: 0, | |
| y: unsafe { | |
| (&raw const S.x).cast_mut().write(1); //~ERROR access itself during initialization | |
| }, | |
| }; | |
| static mut S2: Foo = Foo { | |
| x: 0, | |
| y: unsafe { | |
| S2.x = 1; //~ERROR access itself during initialization | |
| }, | |
| }; | |
| fn main() {} |