From: Esteban Küber Date: Thu, 6 Feb 2020 05:08:07 +0000 (-0800) Subject: On mismatched argument count point at arguments X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=683ebc2dec0a5b88eb3eaf146e6855ea299d17b8;p=rust.git On mismatched argument count point at arguments --- diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index 7e5d27d93b3..d2bef80ac36 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -3761,17 +3761,58 @@ fn check_argument_types( error_code: &str, c_variadic: bool, sugg_unit: bool| { + let (span, start_span, args) = match &expr.kind { + hir::ExprKind::Call(hir::Expr { span, .. }, args) => (*span, *span, &args[..]), + hir::ExprKind::MethodCall(path_segment, span, args) => ( + *span, + // `sp` doesn't point at the whole `foo.bar()`, only at `bar`. + path_segment + .args + .and_then(|args| args.args.iter().last()) + // Account for `foo.bar::()`. + .map(|arg| { + // Skip the closing `>`. + tcx.sess + .source_map() + .next_point(tcx.sess.source_map().next_point(arg.span())) + }) + .unwrap_or(*span), + &args[1..], // Skip the receiver. + ), + k => span_bug!(sp, "checking argument types on a non-call: `{:?}`", k), + }; + let arg_spans = if args.is_empty() { + // foo() + // ^^^-- supplied 0 arguments + // | + // expected 2 arguments + vec![tcx.sess.source_map().next_point(start_span).with_hi(sp.hi())] + } else { + // foo(1, 2, 3) + // ^^^ - - - supplied 3 arguments + // | + // expected 2 arguments + args.iter().map(|arg| arg.span).collect::>() + }; + let mut err = tcx.sess.struct_span_err_with_code( - sp, + span, &format!( "this function takes {}{} but {} {} supplied", if c_variadic { "at least " } else { "" }, - potentially_plural_count(expected_count, "parameter"), - potentially_plural_count(arg_count, "parameter"), + potentially_plural_count(expected_count, "argument"), + potentially_plural_count(arg_count, "argument"), if arg_count == 1 { "was" } else { "were" } ), DiagnosticId::Error(error_code.to_owned()), ); + let label = format!("supplied {}", potentially_plural_count(arg_count, "argument")); + for (i, span) in arg_spans.into_iter().enumerate() { + err.span_label( + span, + if arg_count == 0 || i + 1 == arg_count { &label } else { "" }, + ); + } if let Some(def_s) = def_span.map(|sp| tcx.sess.source_map().def_span(sp)) { err.span_label(def_s, "defined here"); @@ -3788,11 +3829,11 @@ fn check_argument_types( ); } else { err.span_label( - sp, + span, format!( "expected {}{}", if c_variadic { "at least " } else { "" }, - potentially_plural_count(expected_count, "parameter") + potentially_plural_count(expected_count, "argument") ), ); } @@ -5494,8 +5535,7 @@ fn check_rustc_args_require_const(&self, def_id: DefId, hir_id: hir::HirId, span self.tcx.sess.span_err( span, - "this function can only be invoked \ - directly, not through a function pointer", + "this function can only be invoked directly, not through a function pointer", ); } diff --git a/src/test/ui/arg-count-mismatch.rs b/src/test/ui/arg-count-mismatch.rs index cf7487069c1..18926f5daf7 100644 --- a/src/test/ui/arg-count-mismatch.rs +++ b/src/test/ui/arg-count-mismatch.rs @@ -1,4 +1,4 @@ -// error-pattern: parameters were supplied +// error-pattern: arguments were supplied fn f(x: isize) { } diff --git a/src/test/ui/arg-count-mismatch.stderr b/src/test/ui/arg-count-mismatch.stderr index 44f16041363..7bc06134a69 100644 --- a/src/test/ui/arg-count-mismatch.stderr +++ b/src/test/ui/arg-count-mismatch.stderr @@ -1,11 +1,13 @@ -error[E0061]: this function takes 1 parameter but 0 parameters were supplied +error[E0061]: this function takes 1 argument but 0 arguments were supplied --> $DIR/arg-count-mismatch.rs:5:28 | LL | fn f(x: isize) { } | -------------- defined here LL | LL | fn main() { let i: (); i = f(); } - | ^^^ expected 1 parameter + | ^-- supplied 0 arguments + | | + | expected 1 argument error: aborting due to previous error diff --git a/src/test/ui/c-variadic/variadic-ffi-1.rs b/src/test/ui/c-variadic/variadic-ffi-1.rs index 6a3ff24b674..e7197a9d168 100644 --- a/src/test/ui/c-variadic/variadic-ffi-1.rs +++ b/src/test/ui/c-variadic/variadic-ffi-1.rs @@ -13,8 +13,8 @@ extern "C" fn bar(f: isize, x: u8) {} fn main() { unsafe { - foo(); //~ ERROR this function takes at least 2 parameters but 0 parameters were supplied - foo(1); //~ ERROR this function takes at least 2 parameters but 1 parameter was supplied + foo(); //~ ERROR this function takes at least 2 arguments but 0 arguments were supplied + foo(1); //~ ERROR this function takes at least 2 arguments but 1 argument was supplied let x: unsafe extern "C" fn(f: isize, x: u8) = foo; //~ ERROR mismatched types let y: extern "C" fn(f: isize, x: u8, ...) = bar; //~ ERROR mismatched types diff --git a/src/test/ui/c-variadic/variadic-ffi-1.stderr b/src/test/ui/c-variadic/variadic-ffi-1.stderr index 05d839a0c55..318b8aabafb 100644 --- a/src/test/ui/c-variadic/variadic-ffi-1.stderr +++ b/src/test/ui/c-variadic/variadic-ffi-1.stderr @@ -4,23 +4,27 @@ error[E0045]: C-variadic function must have C or cdecl calling convention LL | fn printf(_: *const u8, ...); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ C-variadics require C or cdecl calling convention -error[E0060]: this function takes at least 2 parameters but 0 parameters were supplied +error[E0060]: this function takes at least 2 arguments but 0 arguments were supplied --> $DIR/variadic-ffi-1.rs:16:9 | LL | fn foo(f: isize, x: u8, ...); | ----------------------------- defined here ... LL | foo(); - | ^^^^^ expected at least 2 parameters + | ^^^-- supplied 0 arguments + | | + | expected at least 2 arguments -error[E0060]: this function takes at least 2 parameters but 1 parameter was supplied +error[E0060]: this function takes at least 2 arguments but 1 argument was supplied --> $DIR/variadic-ffi-1.rs:17:9 | LL | fn foo(f: isize, x: u8, ...); | ----------------------------- defined here ... LL | foo(1); - | ^^^^^^ expected at least 2 parameters + | ^^^ - supplied 1 argument + | | + | expected at least 2 arguments error[E0308]: mismatched types --> $DIR/variadic-ffi-1.rs:19:56 diff --git a/src/test/ui/error-codes/E0057.stderr b/src/test/ui/error-codes/E0057.stderr index 6b5890cac36..31579e28289 100644 --- a/src/test/ui/error-codes/E0057.stderr +++ b/src/test/ui/error-codes/E0057.stderr @@ -1,14 +1,18 @@ -error[E0057]: this function takes 1 parameter but 0 parameters were supplied +error[E0057]: this function takes 1 argument but 0 arguments were supplied --> $DIR/E0057.rs:3:13 | LL | let a = f(); - | ^^^ expected 1 parameter + | ^-- supplied 0 arguments + | | + | expected 1 argument -error[E0057]: this function takes 1 parameter but 2 parameters were supplied +error[E0057]: this function takes 1 argument but 2 arguments were supplied --> $DIR/E0057.rs:5:13 | LL | let c = f(2, 3); - | ^^^^^^^ expected 1 parameter + | ^ - - supplied 2 arguments + | | + | expected 1 argument error: aborting due to 2 previous errors diff --git a/src/test/ui/error-codes/E0060.rs b/src/test/ui/error-codes/E0060.rs index 2bb490fb3ea..941eb2a210b 100644 --- a/src/test/ui/error-codes/E0060.rs +++ b/src/test/ui/error-codes/E0060.rs @@ -5,5 +5,5 @@ fn main() { unsafe { printf(); } //~^ ERROR E0060 - //~| expected at least 1 parameter + //~| expected at least 1 argument } diff --git a/src/test/ui/error-codes/E0060.stderr b/src/test/ui/error-codes/E0060.stderr index 8a2e7d1a72c..a600592c6c2 100644 --- a/src/test/ui/error-codes/E0060.stderr +++ b/src/test/ui/error-codes/E0060.stderr @@ -1,11 +1,13 @@ -error[E0060]: this function takes at least 1 parameter but 0 parameters were supplied +error[E0060]: this function takes at least 1 argument but 0 arguments were supplied --> $DIR/E0060.rs:6:14 | LL | fn printf(_: *const u8, ...) -> u32; | ------------------------------------ defined here ... LL | unsafe { printf(); } - | ^^^^^^^^ expected at least 1 parameter + | ^^^^^^-- supplied 0 arguments + | | + | expected at least 1 argument error: aborting due to previous error diff --git a/src/test/ui/error-codes/E0061.rs b/src/test/ui/error-codes/E0061.rs index e64ea36ac92..c7b5fe4310e 100644 --- a/src/test/ui/error-codes/E0061.rs +++ b/src/test/ui/error-codes/E0061.rs @@ -5,9 +5,9 @@ fn f2(a: u16) {} fn main() { f(0); //~^ ERROR E0061 - //~| expected 2 parameters + //~| expected 2 arguments f2(); //~^ ERROR E0061 - //~| expected 1 parameter + //~| expected 1 argument } diff --git a/src/test/ui/error-codes/E0061.stderr b/src/test/ui/error-codes/E0061.stderr index 73103241f7a..dfefa0df313 100644 --- a/src/test/ui/error-codes/E0061.stderr +++ b/src/test/ui/error-codes/E0061.stderr @@ -1,20 +1,24 @@ -error[E0061]: this function takes 2 parameters but 1 parameter was supplied +error[E0061]: this function takes 2 arguments but 1 argument was supplied --> $DIR/E0061.rs:6:5 | LL | fn f(a: u16, b: &str) {} | --------------------- defined here ... LL | f(0); - | ^^^^ expected 2 parameters + | ^ - supplied 1 argument + | | + | expected 2 arguments -error[E0061]: this function takes 1 parameter but 0 parameters were supplied +error[E0061]: this function takes 1 argument but 0 arguments were supplied --> $DIR/E0061.rs:10:5 | LL | fn f2(a: u16) {} | ------------- defined here ... LL | f2(); - | ^^^^ expected 1 parameter + | ^^-- supplied 0 arguments + | | + | expected 1 argument error: aborting due to 2 previous errors diff --git a/src/test/ui/hrtb/issue-58451.rs b/src/test/ui/hrtb/issue-58451.rs index 229e5057678..f36d549e476 100644 --- a/src/test/ui/hrtb/issue-58451.rs +++ b/src/test/ui/hrtb/issue-58451.rs @@ -9,5 +9,5 @@ fn f(i: I) {} fn main() { - f(&[f()]); //~ ERROR this function takes 1 parameter + f(&[f()]); //~ ERROR this function takes 1 argument } diff --git a/src/test/ui/hrtb/issue-58451.stderr b/src/test/ui/hrtb/issue-58451.stderr index 4648c0182b9..c0915808bf5 100644 --- a/src/test/ui/hrtb/issue-58451.stderr +++ b/src/test/ui/hrtb/issue-58451.stderr @@ -1,4 +1,4 @@ -error[E0061]: this function takes 1 parameter but 0 parameters were supplied +error[E0061]: this function takes 1 argument but 0 arguments were supplied --> $DIR/issue-58451.rs:12:9 | LL | / fn f(i: I) @@ -9,7 +9,9 @@ LL | | {} | |__- defined here ... LL | f(&[f()]); - | ^^^ expected 1 parameter + | ^-- supplied 0 arguments + | | + | expected 1 argument error: aborting due to previous error diff --git a/src/test/ui/issues/issue-16939.stderr b/src/test/ui/issues/issue-16939.stderr index 5df2119c141..103f56fa04d 100644 --- a/src/test/ui/issues/issue-16939.stderr +++ b/src/test/ui/issues/issue-16939.stderr @@ -1,8 +1,10 @@ -error[E0057]: this function takes 0 parameters but 1 parameter was supplied +error[E0057]: this function takes 0 arguments but 1 argument was supplied --> $DIR/issue-16939.rs:5:9 | LL | |t| f(t); - | ^^^^ expected 0 parameters + | ^ - supplied 1 argument + | | + | expected 0 arguments error: aborting due to previous error diff --git a/src/test/ui/issues/issue-18819.stderr b/src/test/ui/issues/issue-18819.stderr index 41e8470ecd0..a952c9b46c9 100644 --- a/src/test/ui/issues/issue-18819.stderr +++ b/src/test/ui/issues/issue-18819.stderr @@ -1,11 +1,13 @@ -error[E0061]: this function takes 2 parameters but 1 parameter was supplied +error[E0061]: this function takes 2 arguments but 1 argument was supplied --> $DIR/issue-18819.rs:16:5 | LL | fn print_x(_: &dyn Foo, extra: &str) { | ----------------------------------------------- defined here ... LL | print_x(X); - | ^^^^^^^^^^ expected 2 parameters + | ^^^^^^^ - supplied 1 argument + | | + | expected 2 arguments error: aborting due to previous error diff --git a/src/test/ui/issues/issue-26094.rs b/src/test/ui/issues/issue-26094.rs index b9433849853..78fb0491d82 100644 --- a/src/test/ui/issues/issue-26094.rs +++ b/src/test/ui/issues/issue-26094.rs @@ -1,13 +1,13 @@ macro_rules! some_macro { ($other: expr) => ({ - $other(None) - //~^ this function takes 0 parameters but 1 parameter was supplied + $other(None) //~ NOTE supplied 1 argument }) } -fn some_function() {} +fn some_function() {} //~ NOTE defined here fn main() { some_macro!(some_function); - //~^ in this expansion of some_macro! + //~^ ERROR this function takes 0 arguments but 1 argument was supplied + //~| NOTE expected 0 arguments } diff --git a/src/test/ui/issues/issue-26094.stderr b/src/test/ui/issues/issue-26094.stderr index 0b5b6d5a750..2038d88bf46 100644 --- a/src/test/ui/issues/issue-26094.stderr +++ b/src/test/ui/issues/issue-26094.stderr @@ -1,16 +1,14 @@ -error[E0061]: this function takes 0 parameters but 1 parameter was supplied - --> $DIR/issue-26094.rs:3:9 +error[E0061]: this function takes 0 arguments but 1 argument was supplied + --> $DIR/issue-26094.rs:10:17 | LL | $other(None) - | ^^^^^^^^^^^^ expected 0 parameters + | ---- supplied 1 argument ... LL | fn some_function() {} | ------------------ defined here ... LL | some_macro!(some_function); - | --------------------------- in this macro invocation - | - = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) + | ^^^^^^^^^^^^^ expected 0 arguments error: aborting due to previous error diff --git a/src/test/ui/issues/issue-3044.rs b/src/test/ui/issues/issue-3044.rs index 26db04b69b4..81d76a90eb0 100644 --- a/src/test/ui/issues/issue-3044.rs +++ b/src/test/ui/issues/issue-3044.rs @@ -2,5 +2,5 @@ fn main() { let needlesArr: Vec = vec!['a', 'f']; needlesArr.iter().fold(|x, y| { }); - //~^^ ERROR this function takes 2 parameters but 1 parameter was supplied + //~^^ ERROR this function takes 2 arguments but 1 argument was supplied } diff --git a/src/test/ui/issues/issue-3044.stderr b/src/test/ui/issues/issue-3044.stderr index 35a85b604b2..d2c010659ed 100644 --- a/src/test/ui/issues/issue-3044.stderr +++ b/src/test/ui/issues/issue-3044.stderr @@ -1,8 +1,12 @@ -error[E0061]: this function takes 2 parameters but 1 parameter was supplied +error[E0061]: this function takes 2 arguments but 1 argument was supplied --> $DIR/issue-3044.rs:3:23 | -LL | needlesArr.iter().fold(|x, y| { - | ^^^^ expected 2 parameters +LL | needlesArr.iter().fold(|x, y| { + | _______________________^^^^_- + | | | + | | expected 2 arguments +LL | | }); + | |_____- supplied 1 argument error: aborting due to previous error diff --git a/src/test/ui/issues/issue-4935.rs b/src/test/ui/issues/issue-4935.rs index 3b258c35682..b342bbb1b8e 100644 --- a/src/test/ui/issues/issue-4935.rs +++ b/src/test/ui/issues/issue-4935.rs @@ -3,4 +3,4 @@ fn foo(a: usize) {} //~^ defined here fn main() { foo(5, 6) } -//~^ ERROR this function takes 1 parameter but 2 parameters were supplied +//~^ ERROR this function takes 1 argument but 2 arguments were supplied diff --git a/src/test/ui/issues/issue-4935.stderr b/src/test/ui/issues/issue-4935.stderr index a99581fdca1..0cc686e1cf8 100644 --- a/src/test/ui/issues/issue-4935.stderr +++ b/src/test/ui/issues/issue-4935.stderr @@ -1,11 +1,13 @@ -error[E0061]: this function takes 1 parameter but 2 parameters were supplied +error[E0061]: this function takes 1 argument but 2 arguments were supplied --> $DIR/issue-4935.rs:5:13 | LL | fn foo(a: usize) {} | ---------------- defined here LL | LL | fn main() { foo(5, 6) } - | ^^^^^^^^^ expected 1 parameter + | ^^^ - - supplied 2 arguments + | | + | expected 1 argument error: aborting due to previous error diff --git a/src/test/ui/methods/method-call-err-msg.rs b/src/test/ui/methods/method-call-err-msg.rs index 5ff4b412667..9bfacc7babf 100644 --- a/src/test/ui/methods/method-call-err-msg.rs +++ b/src/test/ui/methods/method-call-err-msg.rs @@ -5,16 +5,18 @@ impl Foo { fn zero(self) -> Foo { self } fn one(self, _: isize) -> Foo { self } fn two(self, _: isize, _: isize) -> Foo { self } + fn three(self, _: T, _: T, _: T) -> Foo { self } } fn main() { let x = Foo; - x.zero(0) //~ ERROR this function takes 0 parameters but 1 parameter was supplied - .one() //~ ERROR this function takes 1 parameter but 0 parameters were supplied - .two(0); //~ ERROR this function takes 2 parameters but 1 parameter was supplied + x.zero(0) //~ ERROR this function takes 0 arguments but 1 argument was supplied + .one() //~ ERROR this function takes 1 argument but 0 arguments were supplied + .two(0); //~ ERROR this function takes 2 arguments but 1 argument was supplied let y = Foo; y.zero() .take() //~ ERROR no method named `take` found .one(0); + y.three::(); //~ ERROR this function takes 3 arguments but 0 arguments were supplied } diff --git a/src/test/ui/methods/method-call-err-msg.stderr b/src/test/ui/methods/method-call-err-msg.stderr index 7efdd91708a..ab1ef5b9d5a 100644 --- a/src/test/ui/methods/method-call-err-msg.stderr +++ b/src/test/ui/methods/method-call-err-msg.stderr @@ -1,32 +1,38 @@ -error[E0061]: this function takes 0 parameters but 1 parameter was supplied - --> $DIR/method-call-err-msg.rs:12:7 +error[E0061]: this function takes 0 arguments but 1 argument was supplied + --> $DIR/method-call-err-msg.rs:13:7 | LL | fn zero(self) -> Foo { self } | -------------------- defined here ... LL | x.zero(0) - | ^^^^ expected 0 parameters + | ^^^^ - supplied 1 argument + | | + | expected 0 arguments -error[E0061]: this function takes 1 parameter but 0 parameters were supplied - --> $DIR/method-call-err-msg.rs:13:7 +error[E0061]: this function takes 1 argument but 0 arguments were supplied + --> $DIR/method-call-err-msg.rs:14:7 | LL | fn one(self, _: isize) -> Foo { self } | ----------------------------- defined here ... LL | .one() - | ^^^ expected 1 parameter + | ^^^- supplied 0 arguments + | | + | expected 1 argument -error[E0061]: this function takes 2 parameters but 1 parameter was supplied - --> $DIR/method-call-err-msg.rs:14:7 +error[E0061]: this function takes 2 arguments but 1 argument was supplied + --> $DIR/method-call-err-msg.rs:15:7 | LL | fn two(self, _: isize, _: isize) -> Foo { self } | --------------------------------------- defined here ... LL | .two(0); - | ^^^ expected 2 parameters + | ^^^ - supplied 1 argument + | | + | expected 2 arguments error[E0599]: no method named `take` found for struct `Foo` in the current scope - --> $DIR/method-call-err-msg.rs:18:7 + --> $DIR/method-call-err-msg.rs:19:7 | LL | pub struct Foo; | --------------- method `take` not found for this @@ -41,7 +47,18 @@ LL | .take() candidate #1: `std::io::Read` candidate #2: `std::iter::Iterator` -error: aborting due to 4 previous errors +error[E0061]: this function takes 3 arguments but 0 arguments were supplied + --> $DIR/method-call-err-msg.rs:21:7 + | +LL | fn three(self, _: T, _: T, _: T) -> Foo { self } + | ------------------------------------------ defined here +... +LL | y.three::(); + | ^^^^^--------- supplied 0 arguments + | | + | expected 3 arguments + +error: aborting due to 5 previous errors Some errors have detailed explanations: E0061, E0599. For more information about an error, try `rustc --explain E0061`. diff --git a/src/test/ui/mismatched_types/overloaded-calls-bad.rs b/src/test/ui/mismatched_types/overloaded-calls-bad.rs index 73e74a97f06..902a6ec81d6 100644 --- a/src/test/ui/mismatched_types/overloaded-calls-bad.rs +++ b/src/test/ui/mismatched_types/overloaded-calls-bad.rs @@ -27,7 +27,7 @@ fn main() { }; let ans = s("what"); //~ ERROR mismatched types let ans = s(); - //~^ ERROR this function takes 1 parameter but 0 parameters were supplied + //~^ ERROR this function takes 1 argument but 0 arguments were supplied let ans = s("burma", "shave"); - //~^ ERROR this function takes 1 parameter but 2 parameters were supplied + //~^ ERROR this function takes 1 argument but 2 arguments were supplied } diff --git a/src/test/ui/mismatched_types/overloaded-calls-bad.stderr b/src/test/ui/mismatched_types/overloaded-calls-bad.stderr index 5a5dd056261..706e25529bf 100644 --- a/src/test/ui/mismatched_types/overloaded-calls-bad.stderr +++ b/src/test/ui/mismatched_types/overloaded-calls-bad.stderr @@ -4,17 +4,21 @@ error[E0308]: mismatched types LL | let ans = s("what"); | ^^^^^^ expected `isize`, found `&str` -error[E0057]: this function takes 1 parameter but 0 parameters were supplied +error[E0057]: this function takes 1 argument but 0 arguments were supplied --> $DIR/overloaded-calls-bad.rs:29:15 | LL | let ans = s(); - | ^^^ expected 1 parameter + | ^-- supplied 0 arguments + | | + | expected 1 argument -error[E0057]: this function takes 1 parameter but 2 parameters were supplied +error[E0057]: this function takes 1 argument but 2 arguments were supplied --> $DIR/overloaded-calls-bad.rs:31:15 | LL | let ans = s("burma", "shave"); - | ^^^^^^^^^^^^^^^^^^^ expected 1 parameter + | ^ ------- ------- supplied 2 arguments + | | + | expected 1 argument error: aborting due to 3 previous errors diff --git a/src/test/ui/not-enough-arguments.rs b/src/test/ui/not-enough-arguments.rs index 309283ed7f4..631bb1dd274 100644 --- a/src/test/ui/not-enough-arguments.rs +++ b/src/test/ui/not-enough-arguments.rs @@ -8,5 +8,5 @@ fn foo(a: isize, b: isize, c: isize, d:isize) { fn main() { foo(1, 2, 3); - //~^ ERROR this function takes 4 parameters but 3 + //~^ ERROR this function takes 4 arguments but 3 } diff --git a/src/test/ui/not-enough-arguments.stderr b/src/test/ui/not-enough-arguments.stderr index c1ee43ea904..f2b57f71400 100644 --- a/src/test/ui/not-enough-arguments.stderr +++ b/src/test/ui/not-enough-arguments.stderr @@ -1,11 +1,13 @@ -error[E0061]: this function takes 4 parameters but 3 parameters were supplied +error[E0061]: this function takes 4 arguments but 3 arguments were supplied --> $DIR/not-enough-arguments.rs:10:3 | LL | fn foo(a: isize, b: isize, c: isize, d:isize) { | --------------------------------------------- defined here ... LL | foo(1, 2, 3); - | ^^^^^^^^^^^^ expected 4 parameters + | ^^^ - - - supplied 3 arguments + | | + | expected 4 arguments error: aborting due to previous error diff --git a/src/test/ui/resolve/resolve-primitive-fallback.rs b/src/test/ui/resolve/resolve-primitive-fallback.rs index e5a3d689d23..992bcd7977f 100644 --- a/src/test/ui/resolve/resolve-primitive-fallback.rs +++ b/src/test/ui/resolve/resolve-primitive-fallback.rs @@ -2,7 +2,7 @@ fn main() { // Make sure primitive type fallback doesn't work in value namespace std::mem::size_of(u16); //~^ ERROR expected value, found builtin type `u16` - //~| ERROR this function takes 0 parameters but 1 parameter was supplied + //~| ERROR this function takes 0 arguments but 1 argument was supplied // Make sure primitive type fallback doesn't work with global paths let _: ::u8; diff --git a/src/test/ui/resolve/resolve-primitive-fallback.stderr b/src/test/ui/resolve/resolve-primitive-fallback.stderr index 92c2a032983..6d61d2f16ca 100644 --- a/src/test/ui/resolve/resolve-primitive-fallback.stderr +++ b/src/test/ui/resolve/resolve-primitive-fallback.stderr @@ -10,11 +10,13 @@ error[E0412]: cannot find type `u8` in the crate root LL | let _: ::u8; | ^^ not found in the crate root -error[E0061]: this function takes 0 parameters but 1 parameter was supplied +error[E0061]: this function takes 0 arguments but 1 argument was supplied --> $DIR/resolve-primitive-fallback.rs:3:5 | LL | std::mem::size_of(u16); - | ^^^^^^^^^^^^^^^^^^^^^^ expected 0 parameters + | ^^^^^^^^^^^^^^^^^ --- supplied 1 argument + | | + | expected 0 arguments error: aborting due to 3 previous errors diff --git a/src/test/ui/span/E0057.stderr b/src/test/ui/span/E0057.stderr index 6b5890cac36..31579e28289 100644 --- a/src/test/ui/span/E0057.stderr +++ b/src/test/ui/span/E0057.stderr @@ -1,14 +1,18 @@ -error[E0057]: this function takes 1 parameter but 0 parameters were supplied +error[E0057]: this function takes 1 argument but 0 arguments were supplied --> $DIR/E0057.rs:3:13 | LL | let a = f(); - | ^^^ expected 1 parameter + | ^-- supplied 0 arguments + | | + | expected 1 argument -error[E0057]: this function takes 1 parameter but 2 parameters were supplied +error[E0057]: this function takes 1 argument but 2 arguments were supplied --> $DIR/E0057.rs:5:13 | LL | let c = f(2, 3); - | ^^^^^^^ expected 1 parameter + | ^ - - supplied 2 arguments + | | + | expected 1 argument error: aborting due to 2 previous errors diff --git a/src/test/ui/span/issue-34264.stderr b/src/test/ui/span/issue-34264.stderr index 80a237ac6aa..116f5ddd5b4 100644 --- a/src/test/ui/span/issue-34264.stderr +++ b/src/test/ui/span/issue-34264.stderr @@ -50,14 +50,16 @@ help: if this is a type, explicitly ignore the parameter name LL | fn bar(_: x, y: usize) {} | ^^^^ -error[E0061]: this function takes 2 parameters but 3 parameters were supplied +error[E0061]: this function takes 2 arguments but 3 arguments were supplied --> $DIR/issue-34264.rs:7:5 | LL | fn foo(Option, String) {} | --------------------------- defined here ... LL | foo(Some(42), 2, ""); - | ^^^^^^^^^^^^^^^^^^^^ expected 2 parameters + | ^^^ -------- - -- supplied 3 arguments + | | + | expected 2 arguments error[E0308]: mismatched types --> $DIR/issue-34264.rs:8:13 @@ -65,14 +67,16 @@ error[E0308]: mismatched types LL | bar("", ""); | ^^ expected `usize`, found `&str` -error[E0061]: this function takes 2 parameters but 3 parameters were supplied +error[E0061]: this function takes 2 arguments but 3 arguments were supplied --> $DIR/issue-34264.rs:10:5 | LL | fn bar(x, y: usize) {} | ------------------- defined here ... LL | bar(1, 2, 3); - | ^^^^^^^^^^^^ expected 2 parameters + | ^^^ - - - supplied 3 arguments + | | + | expected 2 arguments error: aborting due to 6 previous errors diff --git a/src/test/ui/span/missing-unit-argument.stderr b/src/test/ui/span/missing-unit-argument.stderr index 90a96e3f174..f6344fba3d3 100644 --- a/src/test/ui/span/missing-unit-argument.stderr +++ b/src/test/ui/span/missing-unit-argument.stderr @@ -1,68 +1,72 @@ -error[E0061]: this function takes 1 parameter but 0 parameters were supplied +error[E0061]: this function takes 1 argument but 0 arguments were supplied --> $DIR/missing-unit-argument.rs:11:33 | LL | let _: Result<(), String> = Ok(); - | ^^^^ + | ^^-- supplied 0 arguments | help: expected the unit value `()`; create it with empty parentheses | LL | let _: Result<(), String> = Ok(()); | ^^ -error[E0061]: this function takes 2 parameters but 0 parameters were supplied +error[E0061]: this function takes 2 arguments but 0 arguments were supplied --> $DIR/missing-unit-argument.rs:12:5 | LL | fn foo(():(), ():()) {} | -------------------- defined here ... LL | foo(); - | ^^^^^ expected 2 parameters + | ^^^-- supplied 0 arguments + | | + | expected 2 arguments -error[E0061]: this function takes 2 parameters but 1 parameter was supplied +error[E0061]: this function takes 2 arguments but 1 argument was supplied --> $DIR/missing-unit-argument.rs:13:5 | LL | fn foo(():(), ():()) {} | -------------------- defined here ... LL | foo(()); - | ^^^^^^^ expected 2 parameters + | ^^^ -- supplied 1 argument + | | + | expected 2 arguments -error[E0061]: this function takes 1 parameter but 0 parameters were supplied +error[E0061]: this function takes 1 argument but 0 arguments were supplied --> $DIR/missing-unit-argument.rs:14:5 | LL | fn bar(():()) {} | ------------- defined here ... LL | bar(); - | ^^^^^ + | ^^^-- supplied 0 arguments | help: expected the unit value `()`; create it with empty parentheses | LL | bar(()); | ^^ -error[E0061]: this function takes 1 parameter but 0 parameters were supplied +error[E0061]: this function takes 1 argument but 0 arguments were supplied --> $DIR/missing-unit-argument.rs:15:7 | LL | fn baz(self, (): ()) { } | -------------------- defined here ... LL | S.baz(); - | ^^^ + | ^^^- supplied 0 arguments | help: expected the unit value `()`; create it with empty parentheses | LL | S.baz(()); | ^^ -error[E0061]: this function takes 1 parameter but 0 parameters were supplied +error[E0061]: this function takes 1 argument but 0 arguments were supplied --> $DIR/missing-unit-argument.rs:16:7 | LL | fn generic(self, _: T) { } | ------------------------- defined here ... LL | S.generic::<()>(); - | ^^^^^^^ + | ^^^^^^^------ supplied 0 arguments | help: expected the unit value `()`; create it with empty parentheses | diff --git a/src/test/ui/type-alias-enum-variants/enum-variant-priority-higher-than-other-inherent.rs b/src/test/ui/type-alias-enum-variants/enum-variant-priority-higher-than-other-inherent.rs index fa3e1a35fc2..d012687533b 100644 --- a/src/test/ui/type-alias-enum-variants/enum-variant-priority-higher-than-other-inherent.rs +++ b/src/test/ui/type-alias-enum-variants/enum-variant-priority-higher-than-other-inherent.rs @@ -18,6 +18,6 @@ impl E2 { } fn main() { - ::V(); //~ ERROR this function takes 1 parameter but 0 parameters were supplied + ::V(); //~ ERROR this function takes 1 argument but 0 arguments were supplied let _: u8 = ::V; //~ ERROR mismatched types } diff --git a/src/test/ui/type-alias-enum-variants/enum-variant-priority-higher-than-other-inherent.stderr b/src/test/ui/type-alias-enum-variants/enum-variant-priority-higher-than-other-inherent.stderr index 95c3a08c04a..46e7dd0c517 100644 --- a/src/test/ui/type-alias-enum-variants/enum-variant-priority-higher-than-other-inherent.stderr +++ b/src/test/ui/type-alias-enum-variants/enum-variant-priority-higher-than-other-inherent.stderr @@ -1,11 +1,13 @@ -error[E0061]: this function takes 1 parameter but 0 parameters were supplied +error[E0061]: this function takes 1 argument but 0 arguments were supplied --> $DIR/enum-variant-priority-higher-than-other-inherent.rs:21:5 | LL | V(u8) | ----- defined here ... LL | ::V(); - | ^^^^^^^^ expected 1 parameter + | ^^^^^^-- supplied 0 arguments + | | + | expected 1 argument error[E0308]: mismatched types --> $DIR/enum-variant-priority-higher-than-other-inherent.rs:22:17 diff --git a/src/test/ui/type/type-ascription-instead-of-initializer.rs b/src/test/ui/type/type-ascription-instead-of-initializer.rs index aef25250b15..9f9b6f06bbc 100644 --- a/src/test/ui/type/type-ascription-instead-of-initializer.rs +++ b/src/test/ui/type/type-ascription-instead-of-initializer.rs @@ -1,4 +1,4 @@ fn main() { let x: Vec::with_capacity(10, 20); //~ ERROR expected type, found `10` - //~^ ERROR this function takes 1 parameter + //~^ ERROR this function takes 1 argument } diff --git a/src/test/ui/type/type-ascription-instead-of-initializer.stderr b/src/test/ui/type/type-ascription-instead-of-initializer.stderr index 3fe676de59d..530f77e5ae9 100644 --- a/src/test/ui/type/type-ascription-instead-of-initializer.stderr +++ b/src/test/ui/type/type-ascription-instead-of-initializer.stderr @@ -7,11 +7,13 @@ LL | let x: Vec::with_capacity(10, 20); | |help: use `=` if you meant to assign | while parsing the type for `x` -error[E0061]: this function takes 1 parameter but 2 parameters were supplied +error[E0061]: this function takes 1 argument but 2 arguments were supplied --> $DIR/type-ascription-instead-of-initializer.rs:2:12 | LL | let x: Vec::with_capacity(10, 20); - | ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 1 parameter + | ^^^^^^^^^^^^^^^^^^ -- -- supplied 2 arguments + | | + | expected 1 argument error: aborting due to 2 previous errors