mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-30 10:45:18 +00:00
Add test for issue 89118.
This commit is contained in:
parent
f03eb6bef8
commit
3da9dea491
32
src/test/ui/traits/issue-89118.rs
Normal file
32
src/test/ui/traits/issue-89118.rs
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
trait BufferMut {}
|
||||||
|
struct Ctx<D>(D);
|
||||||
|
|
||||||
|
trait BufferUdpStateContext<B> {}
|
||||||
|
impl<B: BufferMut, C> BufferUdpStateContext<B> for C {}
|
||||||
|
|
||||||
|
trait StackContext
|
||||||
|
where
|
||||||
|
Ctx<()>: for<'a> BufferUdpStateContext<&'a ()>,
|
||||||
|
{
|
||||||
|
type Dispatcher;
|
||||||
|
}
|
||||||
|
|
||||||
|
trait TimerContext {
|
||||||
|
type Handler;
|
||||||
|
}
|
||||||
|
impl<C> TimerContext for C
|
||||||
|
where
|
||||||
|
C: StackContext,
|
||||||
|
//~^ ERROR: is not satisfied [E0277]
|
||||||
|
{
|
||||||
|
type Handler = Ctx<C::Dispatcher>;
|
||||||
|
//~^ ERROR: is not satisfied [E0277]
|
||||||
|
}
|
||||||
|
|
||||||
|
struct EthernetWorker<C>(C)
|
||||||
|
where
|
||||||
|
Ctx<()>: for<'a> BufferUdpStateContext<&'a ()>;
|
||||||
|
impl<C> EthernetWorker<C> {}
|
||||||
|
//~^ ERROR: is not satisfied [E0277]
|
||||||
|
|
||||||
|
fn main() {}
|
63
src/test/ui/traits/issue-89118.stderr
Normal file
63
src/test/ui/traits/issue-89118.stderr
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
error[E0277]: the trait bound `for<'a> &'a (): BufferMut` is not satisfied
|
||||||
|
--> $DIR/issue-89118.rs:19:8
|
||||||
|
|
|
||||||
|
LL | C: StackContext,
|
||||||
|
| ^^^^^^^^^^^^ the trait `for<'a> BufferMut` is not implemented for `&'a ()`
|
||||||
|
|
|
||||||
|
note: required because of the requirements on the impl of `for<'a> BufferUdpStateContext<&'a ()>` for `Ctx<()>`
|
||||||
|
--> $DIR/issue-89118.rs:5:23
|
||||||
|
|
|
||||||
|
LL | impl<B: BufferMut, C> BufferUdpStateContext<B> for C {}
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^ ^
|
||||||
|
note: required by a bound in `StackContext`
|
||||||
|
--> $DIR/issue-89118.rs:9:14
|
||||||
|
|
|
||||||
|
LL | trait StackContext
|
||||||
|
| ------------ required by a bound in this
|
||||||
|
LL | where
|
||||||
|
LL | Ctx<()>: for<'a> BufferUdpStateContext<&'a ()>,
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `StackContext`
|
||||||
|
|
||||||
|
error[E0277]: the trait bound `for<'a> &'a (): BufferMut` is not satisfied
|
||||||
|
--> $DIR/issue-89118.rs:22:20
|
||||||
|
|
|
||||||
|
LL | type Handler = Ctx<C::Dispatcher>;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^ the trait `for<'a> BufferMut` is not implemented for `&'a ()`
|
||||||
|
|
|
||||||
|
note: required because of the requirements on the impl of `for<'a> BufferUdpStateContext<&'a ()>` for `Ctx<()>`
|
||||||
|
--> $DIR/issue-89118.rs:5:23
|
||||||
|
|
|
||||||
|
LL | impl<B: BufferMut, C> BufferUdpStateContext<B> for C {}
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^ ^
|
||||||
|
note: required by a bound in `StackContext`
|
||||||
|
--> $DIR/issue-89118.rs:9:14
|
||||||
|
|
|
||||||
|
LL | trait StackContext
|
||||||
|
| ------------ required by a bound in this
|
||||||
|
LL | where
|
||||||
|
LL | Ctx<()>: for<'a> BufferUdpStateContext<&'a ()>,
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `StackContext`
|
||||||
|
|
||||||
|
error[E0277]: the trait bound `for<'a> &'a (): BufferMut` is not satisfied
|
||||||
|
--> $DIR/issue-89118.rs:29:9
|
||||||
|
|
|
||||||
|
LL | impl<C> EthernetWorker<C> {}
|
||||||
|
| ^^^^^^^^^^^^^^^^^ the trait `for<'a> BufferMut` is not implemented for `&'a ()`
|
||||||
|
|
|
||||||
|
note: required because of the requirements on the impl of `for<'a> BufferUdpStateContext<&'a ()>` for `Ctx<()>`
|
||||||
|
--> $DIR/issue-89118.rs:5:23
|
||||||
|
|
|
||||||
|
LL | impl<B: BufferMut, C> BufferUdpStateContext<B> for C {}
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^ ^
|
||||||
|
note: required by a bound in `EthernetWorker`
|
||||||
|
--> $DIR/issue-89118.rs:28:14
|
||||||
|
|
|
||||||
|
LL | struct EthernetWorker<C>(C)
|
||||||
|
| -------------- required by a bound in this
|
||||||
|
LL | where
|
||||||
|
LL | Ctx<()>: for<'a> BufferUdpStateContext<&'a ()>;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `EthernetWorker`
|
||||||
|
|
||||||
|
error: aborting due to 3 previous errors
|
||||||
|
|
||||||
|
For more information about this error, try `rustc --explain E0277`.
|
Loading…
Reference in New Issue
Block a user