• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // SPDX-License-Identifier: Apache-2.0 OR MIT
2 
3 use pin_project::pin_project;
4 
5 // The same implementation.
6 
7 #[pin_project] //~ ERROR E0119
8 struct Foo<T, U> {
9     #[pin]
10     f1: T,
11     f2: U,
12 }
13 
14 // conflicting implementations
15 impl<T, U> Unpin for Foo<T, U> where T: Unpin {} // Conditional Unpin impl
16 
17 // The implementation that under different conditions.
18 
19 #[pin_project] //~ ERROR E0119
20 struct Bar<T, U> {
21     #[pin]
22     f1: T,
23     f2: U,
24 }
25 
26 // conflicting implementations
27 impl<T, U> Unpin for Bar<T, U> {} // Non-conditional Unpin impl
28 
29 #[pin_project] //~ ERROR E0119
30 struct Baz<T, U> {
31     #[pin]
32     f1: T,
33     f2: U,
34 }
35 
36 // conflicting implementations
37 impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {} // Conditional Unpin impl
38 
main()39 fn main() {}
40