about summary refs log tree commit diff
path: root/tests/ui/coherence/coherence-conflicting-negative-trait-impl.stderr
blob: c6aed150201d876f4da20b029a75b0c8a13f7394 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
error[E0751]: found both positive and negative implementation of trait `Send` for type `TestType<_>`:
  --> $DIR/coherence-conflicting-negative-trait-impl.rs:11:1
   |
LL | unsafe impl<T: MyTrait + 'static> Send for TestType<T> {}
   | ------------------------------------------------------ positive implementation here
LL |
LL | impl<T: MyTrait> !Send for TestType<T> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ negative implementation here

error[E0119]: conflicting implementations of trait `Send` for type `TestType<_>`
  --> $DIR/coherence-conflicting-negative-trait-impl.rs:15:1
   |
LL | unsafe impl<T: MyTrait + 'static> Send for TestType<T> {}
   | ------------------------------------------------------ first implementation here
...
LL | unsafe impl<T: 'static> Send for TestType<T> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `TestType<_>`

error[E0367]: `!Send` impl requires `T: MyTrait` but the struct it is implemented for does not
  --> $DIR/coherence-conflicting-negative-trait-impl.rs:11:9
   |
LL | impl<T: MyTrait> !Send for TestType<T> {}
   |         ^^^^^^^
   |
note: the implementor must specify the same requirement
  --> $DIR/coherence-conflicting-negative-trait-impl.rs:7:1
   |
LL | struct TestType<T>(::std::marker::PhantomData<T>);
   | ^^^^^^^^^^^^^^^^^^

error[E0366]: `!Send` impls cannot be specialized
  --> $DIR/coherence-conflicting-negative-trait-impl.rs:18:1
   |
LL | impl !Send for TestType<i32> {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `i32` is not a generic parameter
note: use the same sequence of generic lifetime, type and const parameters as the struct definition
  --> $DIR/coherence-conflicting-negative-trait-impl.rs:7:1
   |
LL | struct TestType<T>(::std::marker::PhantomData<T>);
   | ^^^^^^^^^^^^^^^^^^

error: aborting due to 4 previous errors

Some errors have detailed explanations: E0119, E0366, E0367, E0751.
For more information about an error, try `rustc --explain E0119`.