//@ check-pass | |
// Regression test of #70944, should compile fine. | |
use std::ops::Index; | |
pub struct KeyA; | |
pub struct KeyB; | |
pub struct KeyC; | |
pub trait Foo: Index<KeyA> + Index<KeyB> + Index<KeyC> {} | |
pub trait FooBuilder { | |
type Inner: Foo; | |
fn inner(&self) -> &Self::Inner; | |
} | |
pub fn do_stuff(foo: &impl FooBuilder) { | |
let inner = foo.inner(); | |
&inner[KeyA]; | |
&inner[KeyB]; | |
&inner[KeyC]; | |
} | |
fn main() {} |