error: expected one of `:`, `@`, or `|`, found `)`
  --> $DIR/anon-params-denied-2018.rs:6:15
   |
LL |     fn foo(i32);
   |               ^ expected one of `:`, `@`, or `|`
   |
   = note: anonymous parameters are removed in the 2018 edition (see RFC 1685)
help: if this is a `self` type, give it a parameter name
   |
LL |     fn foo(self: i32);
   |            ^^^^^^^^^
help: if this was a parameter name, give it a type
   |
LL |     fn foo(i32: TypeName);
   |            ^^^^^^^^^^^^^
help: if this is a type, explicitly ignore the parameter name
   |
LL |     fn foo(_: i32);
   |            ^^^^^^

error: expected one of `:`, `@`, or `|`, found `,`
  --> $DIR/anon-params-denied-2018.rs:8:36
   |
LL |     fn bar_with_default_impl(String, String) {}
   |                                    ^ expected one of `:`, `@`, or `|`
   |
   = note: anonymous parameters are removed in the 2018 edition (see RFC 1685)
help: if this is a `self` type, give it a parameter name
   |
LL |     fn bar_with_default_impl(self: String, String) {}
   |                              ^^^^^^^^^^^^
help: if this was a parameter name, give it a type
   |
LL |     fn bar_with_default_impl(String: TypeName, String) {}
   |                              ^^^^^^^^^^^^^^^^
help: if this is a type, explicitly ignore the parameter name
   |
LL |     fn bar_with_default_impl(_: String, String) {}
   |                              ^^^^^^^^^

error: expected one of `:`, `@`, or `|`, found `)`
  --> $DIR/anon-params-denied-2018.rs:8:44
   |
LL |     fn bar_with_default_impl(String, String) {}
   |                                            ^ expected one of `:`, `@`, or `|`
   |
   = note: anonymous parameters are removed in the 2018 edition (see RFC 1685)
help: if this was a parameter name, give it a type
   |
LL |     fn bar_with_default_impl(String, String: TypeName) {}
   |                                      ^^^^^^^^^^^^^^^^
help: if this is a type, explicitly ignore the parameter name
   |
LL |     fn bar_with_default_impl(String, _: String) {}
   |                                      ^^^^^^^^^

error: expected one of `:`, `@`, or `|`, found `,`
  --> $DIR/anon-params-denied-2018.rs:13:22
   |
LL |     fn baz(a:usize, b, c: usize) -> usize {
   |                      ^ expected one of `:`, `@`, or `|`
   |
   = note: anonymous parameters are removed in the 2018 edition (see RFC 1685)
help: if this was a parameter name, give it a type
   |
LL |     fn baz(a:usize, b: TypeName, c: usize) -> usize {
   |                     ^^^^^^^^^^^
help: if this is a type, explicitly ignore the parameter name
   |
LL |     fn baz(a:usize, _: b, c: usize) -> usize {
   |                     ^^^^

error: aborting due to 4 previous errors

