aboutsummaryrefslogtreecommitdiff
path: root/tests/ui/cfg/cfg_attr-unpin.rs
blob: 7b882055423e0d7ac46478b7de146c111e18f322 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use pin_project::pin_project;
use std::marker::PhantomPinned;

#[cfg_attr(any(), pin_project)]
struct Foo<T> {
    inner: T,
}

#[cfg_attr(not(any()), pin_project)]
struct Bar<T> {
    #[cfg_attr(not(any()), pin)]
    inner: T,
}

fn is_unpin<T: Unpin>() {}

fn main() {
    is_unpin::<Foo<PhantomPinned>>(); // ERROR E0277
    is_unpin::<Bar<()>>(); // Ok
    is_unpin::<Bar<PhantomPinned>>(); //~ ERROR E0277
}