Test tuple suggestions, including tuple-as-function-argument

This commit is contained in:
Rob Pilling 2021-11-09 23:20:26 +00:00
parent 94c300a452
commit 80059f9942
3 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,18 @@
// Test suggesting tuples where bare arguments may have been passed
// See issue #86481 for details.
// run-rustfix
fn main() {
let _: Result<(i32, i8), ()> = Ok((1, 2));
//~^ ERROR this enum variant takes 1 argument but 2 arguments were supplied
let _: Option<(i32, i8, &'static str)> = Some((1, 2, "hi"));
//~^ ERROR this enum variant takes 1 argument but 3 arguments were supplied
let _: Option<()> = Some(());
//~^ ERROR this enum variant takes 1 argument but 0 arguments were supplied
f((1, 2)); //~ ERROR this function takes 1 argument
}
fn f(_: (i32, i32)) {
}

View File

@ -0,0 +1,18 @@
// Test suggesting tuples where bare arguments may have been passed
// See issue #86481 for details.
// run-rustfix
fn main() {
let _: Result<(i32, i8), ()> = Ok(1, 2);
//~^ ERROR this enum variant takes 1 argument but 2 arguments were supplied
let _: Option<(i32, i8, &'static str)> = Some(1, 2, "hi");
//~^ ERROR this enum variant takes 1 argument but 3 arguments were supplied
let _: Option<()> = Some();
//~^ ERROR this enum variant takes 1 argument but 0 arguments were supplied
f(1, 2); //~ ERROR this function takes 1 argument
}
fn f(_: (i32, i32)) {
}

View File

@ -0,0 +1,52 @@
error[E0061]: this enum variant takes 1 argument but 2 arguments were supplied
--> $DIR/args-instead-of-tuple.rs:7:36
|
LL | let _: Result<(i32, i8), ()> = Ok(1, 2);
| ^^ - - supplied 2 arguments
|
help: use parentheses to construct a tuple
|
LL | let _: Result<(i32, i8), ()> = Ok((1, 2));
| + +
error[E0061]: this enum variant takes 1 argument but 3 arguments were supplied
--> $DIR/args-instead-of-tuple.rs:9:46
|
LL | let _: Option<(i32, i8, &'static str)> = Some(1, 2, "hi");
| ^^^^ - - ---- supplied 3 arguments
|
help: use parentheses to construct a tuple
|
LL | let _: Option<(i32, i8, &'static str)> = Some((1, 2, "hi"));
| + +
error[E0061]: this enum variant takes 1 argument but 0 arguments were supplied
--> $DIR/args-instead-of-tuple.rs:11:25
|
LL | let _: Option<()> = Some();
| ^^^^-- supplied 0 arguments
|
help: expected the unit value `()`; create it with empty parentheses
|
LL | let _: Option<()> = Some(());
| ++
error[E0061]: this function takes 1 argument but 2 arguments were supplied
--> $DIR/args-instead-of-tuple.rs:14:5
|
LL | f(1, 2);
| ^ - - supplied 2 arguments
|
note: function defined here
--> $DIR/args-instead-of-tuple.rs:17:4
|
LL | fn f(_: (i32, i32)) {
| ^ -------------
help: use parentheses to construct a tuple
|
LL | f((1, 2));
| + +
error: aborting due to 4 previous errors
For more information about this error, try `rustc --explain E0061`.