error[E0277]: the trait bound `(i32, i32, i32): Foo<usize>` is not satisfied
  --> $DIR/impl-substs.rs:13:23
   |
LL |     Foo::<usize>::foo((1i32, 1i32, 1i32));
   |     ----------------- ^^^^^^^^^^^^^^^^^^ an impl did not match: usize _ _
   |     |
   |     required by a bound introduced by this call
   |
   = help: the trait `Foo<usize>` is not implemented for `(i32, i32, i32)`
   = help: the trait `Foo<A>` is implemented for `(A, B, C)`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0277`.