blob: b7bb04de802e51329bee639a3e3210f73cff52a2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
use pin_project::pin_project;
use std::marker::PhantomPinned;
#[pin_project]
struct Foo<T> {
#[cfg(any())]
#[pin]
inner: T,
#[cfg(not(any()))]
inner: T,
}
#[pin_project]
struct Bar<T> {
#[cfg(any())]
inner: T,
#[cfg(not(any()))]
#[pin]
inner: T,
}
fn is_unpin<T: Unpin>() {}
fn main() {
is_unpin::<Foo<PhantomPinned>>(); // Ok
is_unpin::<Bar<()>>(); // Ok
is_unpin::<Bar<PhantomPinned>>(); //~ ERROR E0277
}
|