#![allow(non_camel_case_types)] trait Qux {} struct A; struct B; impl Qux for A {} impl Qux for B {} struct Foo(T, U, V); struct foo; struct bar; fn want(t: T) {} fn have_usize(f: usize) { want::(f); //~ ERROR mismatched types want::(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types } fn have_foo(f: foo) { want::(f); //~ ERROR mismatched types want::(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types } fn have_foo_foo(f: Foo) { want::(f); //~ ERROR mismatched types want::(f); //~ ERROR mismatched types want::(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::<&Foo>(f); //~ ERROR mismatched types want::<&Foo>(f); //~ ERROR mismatched types } fn have_foo_foo_b(f: Foo) { want::(f); //~ ERROR mismatched types want::(f); //~ ERROR mismatched types want::(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::<&Foo>(f); //~ ERROR mismatched types want::<&Foo>(f); //~ ERROR mismatched types } fn have_foo_foo_b_a(f: Foo) { want::(f); //~ ERROR mismatched types want::(f); //~ ERROR mismatched types want::(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::>(f); //~ ERROR mismatched types want::<&Foo>(f); //~ ERROR mismatched types want::<&Foo>(f); //~ ERROR mismatched types } fn main() {}