2024-01-03 15:56:10 -06:00
|
|
|
// https://github.com/rust-lang/rust/issues/50159
|
2024-02-23 05:53:25 -06:00
|
|
|
#![crate_name = "foo"]
|
2024-01-03 15:56:10 -06:00
|
|
|
|
2018-10-23 23:57:09 -05:00
|
|
|
pub trait Signal {
|
|
|
|
type Item;
|
|
|
|
}
|
|
|
|
|
|
|
|
pub trait Signal2 {
|
|
|
|
type Item2;
|
|
|
|
}
|
|
|
|
|
2024-02-23 05:53:25 -06:00
|
|
|
impl<B, C> Signal2 for B
|
|
|
|
where
|
|
|
|
B: Signal<Item = C>,
|
|
|
|
{
|
2018-10-23 23:57:09 -05:00
|
|
|
type Item2 = C;
|
|
|
|
}
|
|
|
|
|
2024-06-21 07:03:08 -05:00
|
|
|
//@ has foo/struct.Switch.html
|
|
|
|
//@ has - '//h3[@class="code-header"]' 'impl<B> Send for Switch<B>where <B as Signal>::Item: Send'
|
|
|
|
//@ has - '//h3[@class="code-header"]' 'impl<B> Sync for Switch<B>where <B as Signal>::Item: Sync'
|
|
|
|
//@ count - '//*[@id="implementations-list"]//*[@class="impl"]' 0
|
|
|
|
//@ count - '//*[@id="synthetic-implementations-list"]//*[@class="impl"]' 6
|
2018-10-23 23:57:09 -05:00
|
|
|
pub struct Switch<B: Signal> {
|
|
|
|
pub inner: <B as Signal2>::Item2,
|
|
|
|
}
|