Fix handling of trait methods with bodies and improve efficiency

This commit is contained in:
varkor 2018-08-06 18:14:57 +01:00
parent b05f0bec1a
commit 235905c080
6 changed files with 70 additions and 39 deletions

View file

@ -9,7 +9,11 @@
// except according to those terms.
trait Foo {
fn foo((x, y): (i32, i32)); //~ ERROR patterns aren't allowed in methods without bodies
fn foo((x, y): (i32, i32)); //~ ERROR patterns aren't allowed in trait methods
}
trait Bar {
fn bar((x, y): (i32, i32)) {} //~ ERROR patterns aren't allowed in trait methods
}
fn main() {}

View file

@ -1,9 +1,23 @@
error[E0642]: patterns aren't allowed in methods without bodies
error[E0642]: patterns aren't allowed in trait methods
--> $DIR/E0642.rs:12:12
|
LL | fn foo((x, y): (i32, i32)); //~ ERROR patterns aren't allowed in methods without bodies
| ^^^^^^ help: use an underscore to ignore the name: `_`
LL | fn foo((x, y): (i32, i32)); //~ ERROR patterns aren't allowed in trait methods
| ^^^^^^
help: give this argument a name or use an underscore to ignore it, instead of a tuple pattern
|
LL | fn foo(_: (i32, i32)); //~ ERROR patterns aren't allowed in trait methods
| ^
error: aborting due to previous error
error[E0642]: patterns aren't allowed in trait methods
--> $DIR/E0642.rs:16:12
|
LL | fn bar((x, y): (i32, i32)) {} //~ ERROR patterns aren't allowed in trait methods
| ^^^^^^
help: give this argument a name or use an underscore to ignore it, instead of a tuple pattern
|
LL | fn bar(_: (i32, i32)) {} //~ ERROR patterns aren't allowed in trait methods
| ^
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0642`.