1 error[E0277]: `T` cannot be shared between threads safely
2 --> $DIR/phantom-oibit.rs:21:12
4 LL | fn is_zen<T: Zen>(_: T) {}
5 | --- required by this bound in `is_zen`
8 | ^ `T` cannot be shared between threads safely
10 = help: the trait `std::marker::Sync` is not implemented for `T`
11 = note: required because of the requirements on the impl of `Zen` for `&T`
12 = note: required because it appears within the type `std::marker::PhantomData<&T>`
13 = note: required because it appears within the type `Guard<'_, T>`
14 help: consider restricting type parameter `T`
16 LL | fn not_sync<T: std::marker::Sync>(x: Guard<T>) {
19 error[E0277]: `T` cannot be shared between threads safely
20 --> $DIR/phantom-oibit.rs:26:12
22 LL | fn is_zen<T: Zen>(_: T) {}
23 | --- required by this bound in `is_zen`
26 | ^ `T` cannot be shared between threads safely
28 = help: the trait `std::marker::Sync` is not implemented for `T`
29 = note: required because of the requirements on the impl of `Zen` for `&T`
30 = note: required because it appears within the type `std::marker::PhantomData<&T>`
31 = note: required because it appears within the type `Guard<'_, T>`
32 = note: required because it appears within the type `Nested<Guard<'_, T>>`
33 help: consider restricting type parameter `T`
35 LL | fn nested_not_sync<T: std::marker::Sync>(x: Nested<Guard<T>>) {
38 error: aborting due to 2 previous errors
40 For more information about this error, try `rustc --explain E0277`.