Test tuple suggestions, including tuple-as-function-argument
This commit is contained in:
parent
94c300a452
commit
80059f9942
18
src/test/ui/suggestions/args-instead-of-tuple.fixed
Normal file
18
src/test/ui/suggestions/args-instead-of-tuple.fixed
Normal 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)) {
|
||||||
|
}
|
18
src/test/ui/suggestions/args-instead-of-tuple.rs
Normal file
18
src/test/ui/suggestions/args-instead-of-tuple.rs
Normal 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)) {
|
||||||
|
}
|
52
src/test/ui/suggestions/args-instead-of-tuple.stderr
Normal file
52
src/test/ui/suggestions/args-instead-of-tuple.stderr
Normal 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`.
|
Loading…
x
Reference in New Issue
Block a user