Source code
Revision control
Copy as Markdown
Other Tools
error[E0119]: conflicting implementations of trait `Unpin` for type `Foo<_, _>`
--> tests/ui/pin_project/conflict-unpin.rs:7:1
|
7 | / pin_project! { //~ ERROR E0119
8 | | struct Foo<T, U> {
9 | | #[pin]
10 | | future: T,
11 | | field: U,
12 | | }
13 | | }
| |_^ conflicting implementation for `Foo<_, _>`
...
16 | impl<T, U> Unpin for Foo<T, U> where T: Unpin {} // Conditional Unpin impl
| --------------------------------------------- first implementation here
|
= note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0119]: conflicting implementations of trait `Unpin` for type `Bar<_, _>`
--> tests/ui/pin_project/conflict-unpin.rs:20:1
|
20 | / pin_project! { //~ ERROR E0119
21 | | struct Bar<T, U> {
22 | | #[pin]
23 | | future: T,
24 | | field: U,
25 | | }
26 | | }
| |_^ conflicting implementation for `Bar<_, _>`
...
29 | impl<T, U> Unpin for Bar<T, U> {} // Non-conditional Unpin impl
| ------------------------------ first implementation here
|
= note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0119]: conflicting implementations of trait `Unpin` for type `Baz<_, _>`
--> tests/ui/pin_project/conflict-unpin.rs:31:1
|
31 | / pin_project! { //~ ERROR E0119
32 | | struct Baz<T, U> {
33 | | #[pin]
34 | | future: T,
35 | | field: U,
36 | | }
37 | | }
| |_^ conflicting implementation for `Baz<_, _>`
...
40 | impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {} // Conditional Unpin impl
| -------------------------------------------- first implementation here
|
= note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0119]: conflicting implementations of trait `Unpin` for type `Qux<_, _>`
--> tests/ui/pin_project/conflict-unpin.rs:42:1
|
42 | / pin_project! { //~ ERROR E0119
43 | | #[project(!Unpin)]
44 | | struct Qux<T, U> {
45 | | #[pin]
... |
48 | | }
49 | | }
| |_^ conflicting implementation for `Qux<_, _>`
...
52 | impl<T, U> Unpin for Qux<T, U> {} // Non-conditional Unpin impl
| ------------------------------ first implementation here
|
= note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0119]: conflicting implementations of trait `Unpin` for type `Fred<_, _>`
--> tests/ui/pin_project/conflict-unpin.rs:54:1
|
54 | / pin_project! { //~ ERROR E0119
55 | | #[project(!Unpin)]
56 | | struct Fred<T, U> {
57 | | #[pin]
... |
60 | | }
61 | | }
| |_^ conflicting implementation for `Fred<_, _>`
...
64 | impl<T: Unpin, U: Unpin> Unpin for Fred<T, U> {} // Conditional Unpin impl
| --------------------------------------------- first implementation here
|
= note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)