use std::pin::Pin; use pin_project::pin_project; #[cfg_attr(not(any()), pin_project)] struct Foo { #[cfg_attr(any(), pin)] f: T, } #[cfg_attr(not(any()), pin_project)] struct Bar { #[cfg_attr(not(any()), pin)] f: T, } fn main() { let mut x = Foo { f: 0_u8 }; let x = Pin::new(&mut x).project(); let _: Pin<&mut u8> = x.f; //~ ERROR E0308 let mut x = Bar { f: 0_u8 }; let x = Pin::new(&mut x).project(); let _: &mut u8 = x.f; //~ ERROR E0308 }