diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/ui/phantom-auto-trait.stderr | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/test/ui/phantom-auto-trait.stderr b/src/test/ui/phantom-auto-trait.stderr new file mode 100644 index 000000000..1cc653c51 --- /dev/null +++ b/src/test/ui/phantom-auto-trait.stderr @@ -0,0 +1,66 @@ +error[E0277]: `T` cannot be shared between threads safely + --> $DIR/phantom-auto-trait.rs:21:12 + | +LL | is_zen(x) + | ------ ^ `T` cannot be shared between threads safely + | | + | required by a bound introduced by this call + | +note: required because of the requirements on the impl of `Zen` for `&T` + --> $DIR/phantom-auto-trait.rs:10:24 + | +LL | unsafe impl<'a, T: 'a> Zen for &'a T where T: Sync {} + | ^^^ ^^^^^ + = note: required because it appears within the type `PhantomData<&T>` +note: required because it appears within the type `Guard<'_, T>` + --> $DIR/phantom-auto-trait.rs:12:8 + | +LL | struct Guard<'a, T: 'a> { + | ^^^^^ +note: required by a bound in `is_zen` + --> $DIR/phantom-auto-trait.rs:18:14 + | +LL | fn is_zen<T: Zen>(_: T) {} + | ^^^ required by this bound in `is_zen` +help: consider restricting type parameter `T` + | +LL | fn not_sync<T: std::marker::Sync>(x: Guard<T>) { + | +++++++++++++++++++ + +error[E0277]: `T` cannot be shared between threads safely + --> $DIR/phantom-auto-trait.rs:26:12 + | +LL | is_zen(x) + | ------ ^ `T` cannot be shared between threads safely + | | + | required by a bound introduced by this call + | +note: required because of the requirements on the impl of `Zen` for `&T` + --> $DIR/phantom-auto-trait.rs:10:24 + | +LL | unsafe impl<'a, T: 'a> Zen for &'a T where T: Sync {} + | ^^^ ^^^^^ + = note: required because it appears within the type `PhantomData<&T>` +note: required because it appears within the type `Guard<'_, T>` + --> $DIR/phantom-auto-trait.rs:12:8 + | +LL | struct Guard<'a, T: 'a> { + | ^^^^^ +note: required because it appears within the type `Nested<Guard<'_, T>>` + --> $DIR/phantom-auto-trait.rs:16:8 + | +LL | struct Nested<T>(T); + | ^^^^^^ +note: required by a bound in `is_zen` + --> $DIR/phantom-auto-trait.rs:18:14 + | +LL | fn is_zen<T: Zen>(_: T) {} + | ^^^ required by this bound in `is_zen` +help: consider restricting type parameter `T` + | +LL | fn nested_not_sync<T: std::marker::Sync>(x: Nested<Guard<T>>) { + | +++++++++++++++++++ + +error: aborting due to 2 previous errors + +For more information about this error, try `rustc --explain E0277`. |