1 error[E0277]: `*const Bar` cannot be shared between threads safely
2 --> $DIR/recursive-requirements.rs:16:12
4 LL | let _: AssertSync<Foo> = unimplemented!();
5 | ^^^^^^^^^^^^^^^ `*const Bar` cannot be shared between threads safely
7 = help: within `Foo`, the trait `Sync` is not implemented for `*const Bar`
8 note: required because it appears within the type `Foo`
9 --> $DIR/recursive-requirements.rs:5:12
13 note: required by a bound in `AssertSync`
14 --> $DIR/recursive-requirements.rs:3:22
16 LL | struct AssertSync<T: Sync>(PhantomData<T>);
17 | ^^^^ required by this bound in `AssertSync`
19 error[E0277]: `*const Foo` cannot be shared between threads safely
20 --> $DIR/recursive-requirements.rs:16:12
22 LL | let _: AssertSync<Foo> = unimplemented!();
23 | ^^^^^^^^^^^^^^^ `*const Foo` cannot be shared between threads safely
25 = help: within `Foo`, the trait `Sync` is not implemented for `*const Foo`
26 note: required because it appears within the type `Bar`
27 --> $DIR/recursive-requirements.rs:10:12
31 = note: required because it appears within the type `PhantomData<Bar>`
32 note: required because it appears within the type `Foo`
33 --> $DIR/recursive-requirements.rs:5:12
37 note: required by a bound in `AssertSync`
38 --> $DIR/recursive-requirements.rs:3:22
40 LL | struct AssertSync<T: Sync>(PhantomData<T>);
41 | ^^^^ required by this bound in `AssertSync`
43 error: aborting due to 2 previous errors
45 For more information about this error, try `rustc --explain E0277`.