error: expected one of `:`, `@`, or `|`, found `<`
  --> $DIR/issue-34264.rs:1:14
   |
LL | fn foo(Option<i32>, String) {}
   |              ^ expected one of `:`, `@`, or `|`
   |
help: if this is a type, explicitly ignore the parameter name
   |
LL | fn foo(_: Option<i32>, String) {}
   |        ++

error: expected one of `:`, `@`, or `|`, found `)`
  --> $DIR/issue-34264.rs:1:27
   |
LL | fn foo(Option<i32>, String) {}
   |                           ^ expected one of `:`, `@`, or `|`
   |
help: if this is a parameter name, give it a type
   |
LL | fn foo(Option<i32>, String: TypeName) {}
   |                           ++++++++++
help: if this is a type, explicitly ignore the parameter name
   |
LL | fn foo(Option<i32>, _: String) {}
   |                     ++

error: expected one of `:`, `@`, or `|`, found `,`
  --> $DIR/issue-34264.rs:3:9
   |
LL | fn bar(x, y: usize) {}
   |         ^ expected one of `:`, `@`, or `|`
   |
help: if this is a parameter name, give it a type
   |
LL | fn bar(x: TypeName, y: usize) {}
   |         ++++++++++
help: if this is a type, explicitly ignore the parameter name
   |
LL | fn bar(_: x, y: usize) {}
   |        ++

error[E0061]: this function takes 2 arguments but 3 arguments were supplied
  --> $DIR/issue-34264.rs:7:5
   |
LL |     foo(Some(42), 2, "");
   |     ^^^              -- unexpected argument #3 of type `&'static str`
   |
note: function defined here
  --> $DIR/issue-34264.rs:1:4
   |
LL | fn foo(Option<i32>, String) {}
   |    ^^^
help: remove the extra argument
   |
LL -     foo(Some(42), 2, "");
LL +     foo(Some(42), 2);
   |

error[E0308]: mismatched types
  --> $DIR/issue-34264.rs:8:13
   |
LL |     bar("", "");
   |     ---     ^^ expected `usize`, found `&str`
   |     |
   |     arguments to this function are incorrect
   |
note: function defined here
  --> $DIR/issue-34264.rs:3:4
   |
LL | fn bar(x, y: usize) {}
   |    ^^^    --------

error[E0061]: this function takes 2 arguments but 3 arguments were supplied
  --> $DIR/issue-34264.rs:10:5
   |
LL |     bar(1, 2, 3);
   |     ^^^       - unexpected argument #3 of type `{integer}`
   |
note: function defined here
  --> $DIR/issue-34264.rs:3:4
   |
LL | fn bar(x, y: usize) {}
   |    ^^^
help: remove the extra argument
   |
LL -     bar(1, 2, 3);
LL +     bar(1, 2);
   |

error: aborting due to 6 previous errors

Some errors have detailed explanations: E0061, E0308.
For more information about an error, try `rustc --explain E0061`.
