| //@ run-rustfix | |
| // Test equality constraints on associated types in a where clause. | |
| #![allow(dead_code)] | |
| pub trait ToInt { | |
| fn to_int(&self) -> isize; | |
| } | |
| pub trait GetToInt | |
| { | |
| type R; | |
| fn get(&self) -> <Self as GetToInt>::R; | |
| } | |
| fn foo<G>(g: G) -> isize | |
| where G : GetToInt, <G as GetToInt>::R: ToInt | |
| { | |
| ToInt::to_int(&g.get()) //~ ERROR E0277 | |
| } | |
| fn bar<G : GetToInt>(g: G) -> isize | |
| where G::R : ToInt | |
| { | |
| ToInt::to_int(&g.get()) // OK | |
| } | |
| pub fn main() { | |
| } |