File tree Expand file tree Collapse file tree 2 files changed +35
-0
lines changed
Expand file tree Collapse file tree 2 files changed +35
-0
lines changed Original file line number Diff line number Diff line change 4545#![ feature( inline_const) ]
4646#![ feature( is_sorted) ]
4747#![ feature( pattern) ]
48+ #![ feature( pin_macro) ]
4849#![ feature( sort_internals) ]
4950#![ feature( slice_take) ]
5051#![ feature( maybe_uninit_uninit_array) ]
@@ -122,6 +123,7 @@ mod ops;
122123mod option;
123124mod pattern;
124125mod pin;
126+ mod pin_macro;
125127mod ptr;
126128mod result;
127129mod simd;
Original file line number Diff line number Diff line change 1+ // edition:2021
2+ use core:: {
3+ marker:: PhantomPinned ,
4+ mem:: { drop as stuff, transmute} ,
5+ pin:: { pin, Pin } ,
6+ } ;
7+
8+ #[ test]
9+ fn basic ( ) {
10+ let it: Pin < & mut PhantomPinned > = pin ! ( PhantomPinned ) ;
11+ stuff ( it) ;
12+ }
13+
14+ #[ test]
15+ fn extension_works_through_block ( ) {
16+ let it: Pin < & mut PhantomPinned > = { pin ! ( PhantomPinned ) } ;
17+ stuff ( it) ;
18+ }
19+
20+ #[ test]
21+ fn extension_works_through_unsafe_block ( ) {
22+ // "retro-type-inference" works as well.
23+ let it: Pin < & mut PhantomPinned > = unsafe { pin ! ( transmute( ( ) ) ) } ;
24+ stuff ( it) ;
25+ }
26+
27+ #[ test]
28+ fn unsize_coercion ( ) {
29+ let slice: Pin < & mut [ PhantomPinned ] > = pin ! ( [ PhantomPinned ; 2 ] ) ;
30+ stuff ( slice) ;
31+ let dyn_obj: Pin < & mut dyn Send > = pin ! ( [ PhantomPinned ; 2 ] ) ;
32+ stuff ( dyn_obj) ;
33+ }
You can’t perform that action at this time.
0 commit comments