// 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
{
    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() {
}
