aboutsummaryrefslogtreecommitdiff
path: root/tests/ui/pin_project/conflict-unpin.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/pin_project/conflict-unpin.rs')
-rw-r--r--tests/ui/pin_project/conflict-unpin.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/ui/pin_project/conflict-unpin.rs b/tests/ui/pin_project/conflict-unpin.rs
index f702f06..bdab20f 100644
--- a/tests/ui/pin_project/conflict-unpin.rs
+++ b/tests/ui/pin_project/conflict-unpin.rs
@@ -37,4 +37,28 @@ pin_project! { //~ ERROR E0119
// conflicting implementations
impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {} // Conditional Unpin impl
+pin_project! { //~ ERROR E0119
+ #[project(!Unpin)]
+ struct Qux<T, U> {
+ #[pin]
+ future: T,
+ field: U,
+ }
+}
+
+// conflicting implementations
+impl<T, U> Unpin for Qux<T, U> {} // Non-conditional Unpin impl
+
+pin_project! { //~ ERROR E0119
+ #[project(!Unpin)]
+ struct Fred<T, U> {
+ #[pin]
+ future: T,
+ field: U,
+ }
+}
+
+// conflicting implementations
+impl<T: Unpin, U: Unpin> Unpin for Fred<T, U> {} // Conditional Unpin impl
+
fn main() {}