File tree 2 files changed +17
-0
lines changed
2 files changed +17
-0
lines changed Original file line number Diff line number Diff line change 16
16
#![ feature( const_maybe_uninit_as_mut_ptr) ]
17
17
#![ feature( const_maybe_uninit_assume_init) ]
18
18
#![ feature( const_maybe_uninit_assume_init_read) ]
19
+ #![ feature( const_nonnull_new) ]
19
20
#![ feature( const_num_from_num) ]
21
+ #![ feature( const_ptr_as_ref) ]
20
22
#![ feature( const_ptr_read) ]
21
23
#![ feature( const_ptr_write) ]
22
24
#![ feature( const_ptr_offset) ]
Original file line number Diff line number Diff line change @@ -274,6 +274,21 @@ fn test_unsized_nonnull() {
274
274
assert ! ( ys == zs) ;
275
275
}
276
276
277
+ #[ test]
278
+ fn test_const_nonnull_new ( ) {
279
+ const {
280
+ assert ! ( NonNull :: new( core:: ptr:: null_mut:: <( ) >( ) ) . is_none( ) ) ;
281
+
282
+ let value = & mut 0u32 ;
283
+ let mut ptr = NonNull :: new ( value) . unwrap ( ) ;
284
+ unsafe { * ptr. as_mut ( ) = 42 } ;
285
+
286
+ let reference = unsafe { & * ptr. as_ref ( ) } ;
287
+ assert ! ( * reference == * value) ;
288
+ assert ! ( * reference == 42 ) ;
289
+ } ;
290
+ }
291
+
277
292
#[ test]
278
293
#[ allow( warnings) ]
279
294
// Have a symbol for the test below. It doesn’t need to be an actual variadic function, match the
You can’t perform that action at this time.
0 commit comments