error[E0308]: mismatched types --> $DIR/type-parameter-names.rs:5:5 | LL | fn foo(x: Foo) -> Bar { | --- --- --- expected `Bar` because of return type | | | | | expected type parameter | found type parameter LL | x | ^ expected type parameter `Bar`, found type parameter `Foo` | = note: expected type parameter `Bar` found type parameter `Foo` = note: a type parameter was expected, but a different one was found; you might be missing a type parameter or trait bound = note: for more information, visit https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.