Skip to content

Commit 6131815

Browse files
committed
Fixes for issues #35215 and #35216
1 parent a0b4e67 commit 6131815

File tree

10 files changed

+22
-2
lines changed

10 files changed

+22
-2
lines changed

src/librustc_typeck/check/mod.rs

+6
Original file line numberDiff line numberDiff line change
@@ -2384,6 +2384,12 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
23842384
arg_count,
23852385
if arg_count == 1 {" was"} else {"s were"}),
23862386
error_code);
2387+
2388+
err.span_label(sp, &format!("expected {}{} parameter{}",
2389+
if variadic {"at least "} else {""},
2390+
expected_count,
2391+
if expected_count == 1 {""} else {"s"}));
2392+
23872393
let input_types = fn_inputs.iter().map(|i| format!("{:?}", i)).collect::<Vec<String>>();
23882394
if input_types.len() > 0 {
23892395
err.note(&format!("the following parameter type{} expected: {}",

src/test/compile-fail/E0060.rs

+2
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,6 @@ extern "C" {
1414

1515
fn main() {
1616
unsafe { printf(); } //~ ERROR E0060
17+
//~| NOTE expected at least 1 parameter
18+
//~| NOTE the following parameter type was expected
1719
}

src/test/compile-fail/E0061.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,7 @@
1111
fn f(a: u16, b: &str) {}
1212

1313
fn main() {
14-
f(0); //~ ERROR E0061
14+
f(0); //~ ERROR E0061
15+
//~| NOTE expected 2 parameters
16+
//~| NOTE the following parameter types were expected
1517
}

src/test/compile-fail/issue-18819.rs

+1
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,5 @@ fn print_x(_: &Foo<Item=bool>, extra: &str) {
2525
fn main() {
2626
print_x(X); //~error this function takes 2 parameters but 1 parameter was supplied
2727
//~^ NOTE the following parameter types were expected: &Foo<Item=bool>, &str
28+
//~| NOTE expected 2 parameters
2829
}

src/test/compile-fail/issue-3044.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ fn main() {
1515
});
1616
//~^^ ERROR this function takes 2 parameters but 1 parameter was supplied
1717
//~^^^ NOTE the following parameter types were expected
18-
//
18+
//~| NOTE expected 2 parameters
1919
// the first error is, um, non-ideal.
2020
}

src/test/compile-fail/issue-4935.rs

+1
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@
1313
fn foo(a: usize) {}
1414
fn main() { foo(5, 6) } //~ ERROR this function takes 1 parameter but 2 parameters were supplied
1515
//~^ NOTE the following parameter type was expected
16+
//~| NOTE expected 1 parameter

src/test/compile-fail/method-call-err-msg.rs

+3
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@ impl Foo {
2020
fn main() {
2121
let x = Foo;
2222
x.zero(0) //~ ERROR this function takes 0 parameters but 1 parameter was supplied
23+
//~^ NOTE expected 0 parameters
2324
.one() //~ ERROR this function takes 1 parameter but 0 parameters were supplied
2425
//~^ NOTE the following parameter type was expected
26+
//~| NOTE expected 1 parameter
2527
.two(0); //~ ERROR this function takes 2 parameters but 1 parameter was supplied
2628
//~^ NOTE the following parameter types were expected
29+
//~| NOTE expected 2 parameters
2730

2831
let y = Foo;
2932
y.zero()

src/test/compile-fail/not-enough-arguments.rs

+1
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ fn main() {
2020
foo(1, 2, 3);
2121
//~^ ERROR this function takes 4 parameters but 3
2222
//~^^ NOTE the following parameter types were expected
23+
//~| NOTE expected 4 parameters
2324
}

src/test/compile-fail/overloaded-calls-bad.rs

+2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ fn main() {
4242
let ans = s();
4343
//~^ ERROR this function takes 1 parameter but 0 parameters were supplied
4444
//~| NOTE the following parameter type was expected
45+
//~| NOTE expected 1 parameter
4546
let ans = s("burma", "shave");
4647
//~^ ERROR this function takes 1 parameter but 2 parameters were supplied
4748
//~| NOTE the following parameter type was expected
49+
//~| NOTE expected 1 parameter
4850
}

src/test/compile-fail/variadic-ffi-3.rs

+2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ fn main() {
1818
unsafe {
1919
foo(); //~ ERROR: this function takes at least 2 parameters but 0 parameters were supplied
2020
//~^ NOTE the following parameter types were expected
21+
//~| NOTE expected at least 2 parameters
2122
foo(1); //~ ERROR: this function takes at least 2 parameters but 1 parameter was supplied
2223
//~^ NOTE the following parameter types were expected
24+
//~| NOTE expected at least 2 parameters
2325

2426
let x: unsafe extern "C" fn(f: isize, x: u8) = foo;
2527
//~^ ERROR: mismatched types

0 commit comments

Comments
 (0)