blob: f38ec640e1781d32095c0dd2ddb8415afa5e80d6 (
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
|
// check-pass
#![feature(associated_type_bounds)]
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::<()>();
}
|