File tree Expand file tree Collapse file tree 4 files changed +34
-2
lines changed
pin-project-internal/src/pin_project Expand file tree Collapse file tree 4 files changed +34
-2
lines changed Original file line number Diff line number Diff line change @@ -37,6 +37,10 @@ impl Parse for Args {
37
37
"UnsafeUnpin" => unsafe_unpin = Some ( i. span ( ) ) ,
38
38
_ => return Err ( error ! ( i, "an invalid argument was passed" ) ) ,
39
39
}
40
+
41
+ if !input. is_empty ( ) {
42
+ let _: Comma = input. parse ( ) ?;
43
+ }
40
44
}
41
45
Ok ( Self { pinned_drop, unsafe_unpin } )
42
46
}
Original file line number Diff line number Diff line change 4
4
#![ allow( dead_code) ]
5
5
6
6
use core:: pin:: Pin ;
7
- use pin_project:: pin_project;
7
+ use pin_project:: { pin_project, pinned_drop , UnsafeUnpin } ;
8
8
9
9
#[ test]
10
10
fn test_pin_project ( ) {
@@ -164,3 +164,19 @@ fn overlapping_lifetime_names() {
164
164
field : & ' _pin mut T ,
165
165
}
166
166
}
167
+
168
+ #[ test]
169
+ fn combine ( ) {
170
+ #[ pin_project( PinnedDrop , UnsafeUnpin ) ]
171
+ pub struct Foo < T > {
172
+ field_1 : u8 ,
173
+ #[ pin]
174
+ field_2 : T ,
175
+ }
176
+
177
+ #[ pinned_drop]
178
+ fn do_drop < T > ( _: Pin < & mut Foo < T > > ) { }
179
+
180
+ #[ allow( unsafe_code) ]
181
+ unsafe impl < T : Unpin > UnsafeUnpin for Foo < T > { }
182
+ }
Original file line number Diff line number Diff line change @@ -26,4 +26,10 @@ enum D<T> {
26
26
} ,
27
27
}
28
28
29
+ #[ pin_project( UnsafeUnpin , , ) ] //~ ERROR unexpected token
30
+ struct E < T > {
31
+ #[ pin]
32
+ future : T ,
33
+ }
34
+
29
35
fn main ( ) { }
Original file line number Diff line number Diff line change @@ -22,5 +22,11 @@ error: unexpected token
22
22
24 | #[pin(foo)] //~ ERROR unexpected token
23
23
| ^
24
24
25
- error: aborting due to 4 previous errors
25
+ error: expected identifier
26
+ --> $DIR/invalid.rs:29:27
27
+ |
28
+ 29 | #[pin_project(UnsafeUnpin,,)] //~ ERROR unexpected token
29
+ | ^
30
+
31
+ error: aborting due to 5 previous errors
26
32
You can’t perform that action at this time.
0 commit comments