File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 1+ // check-pass 
2+ #![ allow( non_camel_case_types,  non_upper_case_globals,  static_mut_ref) ]  
3+ 
4+ pub  struct  wl_interface  { 
5+     pub  version :  i32 
6+ } 
7+ 
8+ pub  struct  Interface  { 
9+     pub  other_interfaces :  & ' static  [ & ' static  Interface ] , 
10+     pub  c_ptr :  Option < & ' static  wl_interface > , 
11+ } 
12+ 
13+ pub  static  mut  wl_callback_interface:  wl_interface  = wl_interface  { 
14+     version :  0 , 
15+ } ; 
16+ 
17+ pub  static  WL_CALLBACK_INTERFACE :  Interface  = Interface  { 
18+     other_interfaces :  & [ ] , 
19+     c_ptr :  Some ( unsafe  {  & wl_callback_interface } ) , 
20+ } ; 
21+ 
22+ // This static contains a promoted that points to a static that points to a mutable static. 
23+ pub  static  WL_SURFACE_INTERFACE :  Interface  = Interface  { 
24+     other_interfaces :  & [ & WL_CALLBACK_INTERFACE ] , 
25+     c_ptr :  None , 
26+ } ; 
27+ 
28+ // And another variant of the same thing, this time with interior mutability. 
29+ use  std:: sync:: OnceLock ; 
30+ static  LAZY_INIT :  OnceLock < u32 >  = OnceLock :: new ( ) ; 
31+ static  LAZY_INIT_REF :  & [ & OnceLock < u32 > ]  = & [ & LAZY_INIT ] ; 
32+ 
33+ fn  main ( )  { } 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments