rust/tests/ui/argument-suggestions/extra_arguments.rs
2023-07-30 19:22:26 +02:00

56 lines
1.3 KiB
Rust

fn empty() {}
fn one_arg(_a: i32) {}
fn two_arg_same(_a: i32, _b: i32) {}
fn two_arg_diff(_a: i32, _b: &str) {}
macro_rules! foo {
($x:expr, ~) => {
empty($x, 1); //~ ERROR function takes
};
($x:expr, $y:expr) => {
empty($x, $y); //~ ERROR function takes
};
(~, $y:expr) => {
empty(1, $y); //~ ERROR function takes
};
}
fn main() {
empty(""); //~ ERROR function takes
empty(1, 1); //~ ERROR function takes
one_arg(1, 1); //~ ERROR function takes
one_arg(1, ""); //~ ERROR function takes
one_arg(1, "", 1.0); //~ ERROR function takes
two_arg_same(1, 1, 1); //~ ERROR function takes
two_arg_same(1, 1, 1.0); //~ ERROR function takes
two_arg_diff(1, 1, ""); //~ ERROR function takes
two_arg_diff(1, "", ""); //~ ERROR function takes
two_arg_diff(1, 1, "", ""); //~ ERROR function takes
two_arg_diff(1, "", 1, ""); //~ ERROR function takes
// Check with weird spacing and newlines
two_arg_same(1, 1, ""); //~ ERROR function takes
two_arg_diff(1, 1, ""); //~ ERROR function takes
two_arg_same( //~ ERROR function takes
1,
1,
""
);
two_arg_diff( //~ ERROR function takes
1,
1,
""
);
// Check with macro expansions
foo!(1, ~);
foo!(~, 1);
foo!(1, 1);
one_arg(1, panic!()); //~ ERROR function takes
one_arg(panic!(), 1); //~ ERROR function takes
}