Trait method parameters now need to have names in 2018 edition


#1

The following compiles in the 2015 edition but not on the 2018 edition:

pub trait A {
    fn go(&self, u32);
}

If a name is added like so then it works on both editions:

pub trait A {
    fn go(&self, a: u32);
}

Playground link

Was this change intentional? I tried to find documentation or discussion of it, but was unable to.


#2

Basically, this makes the rustdocs better, and makes it feasible to allow some things like slice patterns in method implementations in traits.


#3

There’s an issue for this confusion from this change: #53990