mirror of https://github.com/rust-lang/rust
23 lines
336 B
Rust
23 lines
336 B
Rust
//@ check-pass
|
|
|
|
trait Foo {
|
|
type Bar;
|
|
}
|
|
|
|
impl Foo for () {
|
|
type Bar = ();
|
|
}
|
|
|
|
fn a<F: Foo>() where F::Bar: Copy {}
|
|
|
|
fn b<F: Foo>() where <F as Foo>::Bar: Copy {}
|
|
|
|
// This used to complain about ambiguous associated types.
|
|
fn c<F: Foo<Bar: Foo>>() where F::Bar: Copy {}
|
|
|
|
fn main() {
|
|
a::<()>();
|
|
b::<()>();
|
|
c::<()>();
|
|
}
|