about summary refs log tree commit diff
path: root/tests/ui/recursion/recursive-requirements.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/recursion/recursive-requirements.rs')
-rw-r--r--tests/ui/recursion/recursive-requirements.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/ui/recursion/recursive-requirements.rs b/tests/ui/recursion/recursive-requirements.rs
new file mode 100644
index 00000000000..9cfbee5f1e9
--- /dev/null
+++ b/tests/ui/recursion/recursive-requirements.rs
@@ -0,0 +1,19 @@
+use std::marker::PhantomData;
+
+struct AssertSync<T: Sync>(PhantomData<T>);
+
+pub struct Foo {
+    bar: *const Bar,
+    phantom: PhantomData<Bar>,
+}
+
+pub struct Bar {
+    foo: *const Foo,
+    phantom: PhantomData<Foo>,
+}
+
+fn main() {
+    let _: AssertSync<Foo> = unimplemented!();
+    //~^ ERROR E0277
+    //~| ERROR E0277
+}