Rollup merge of #35419 - Keats:err-243, r=jonathandturner
Update error message for E0243 and E0244 Fixes #35389 and #35390 as part of #35233. r? @jonathandturner
This commit is contained in:
commit
c92ca5f585
@ -2257,20 +2257,27 @@ fn check_type_argument_count(tcx: TyCtxt, span: Span, supplied: usize,
|
||||
} else {
|
||||
"expected"
|
||||
};
|
||||
span_err!(tcx.sess, span, E0243,
|
||||
"wrong number of type arguments: {} {}, found {}",
|
||||
expected, required, supplied);
|
||||
struct_span_err!(tcx.sess, span, E0243, "wrong number of type arguments")
|
||||
.span_label(
|
||||
span,
|
||||
&format!("{} {} type arguments, found {}", expected, required, supplied)
|
||||
)
|
||||
.emit();
|
||||
} else if supplied > accepted {
|
||||
let expected = if required < accepted {
|
||||
"expected at most"
|
||||
let expected = if required == 0 {
|
||||
"expected no".to_string()
|
||||
} else if required < accepted {
|
||||
format!("expected at most {}", accepted)
|
||||
} else {
|
||||
"expected"
|
||||
format!("expected {}", accepted)
|
||||
};
|
||||
span_err!(tcx.sess, span, E0244,
|
||||
"wrong number of type arguments: {} {}, found {}",
|
||||
expected,
|
||||
accepted,
|
||||
supplied);
|
||||
|
||||
struct_span_err!(tcx.sess, span, E0244, "wrong number of type arguments")
|
||||
.span_label(
|
||||
span,
|
||||
&format!("{} type arguments, found {}", expected, supplied)
|
||||
)
|
||||
.emit();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9,7 +9,9 @@
|
||||
// except according to those terms.
|
||||
|
||||
struct Foo<T> { x: T }
|
||||
struct Bar { x: Foo } //~ ERROR E0243
|
||||
struct Bar { x: Foo }
|
||||
//~^ ERROR E0243
|
||||
//~| NOTE expected 1 type arguments, found 0
|
||||
|
||||
fn main() {
|
||||
}
|
||||
|
@ -9,7 +9,10 @@
|
||||
// except according to those terms.
|
||||
|
||||
struct Foo { x: bool }
|
||||
struct Bar<S, T> { x: Foo<S, T> } //~ ERROR E0244
|
||||
struct Bar<S, T> { x: Foo<S, T> }
|
||||
//~^ ERROR E0244
|
||||
//~| NOTE expected no type arguments, found 2
|
||||
|
||||
|
||||
fn main() {
|
||||
}
|
||||
|
@ -16,5 +16,7 @@ struct Vec<T, A = Heap>(
|
||||
marker::PhantomData<(T,A)>);
|
||||
|
||||
fn main() {
|
||||
let _: Vec; //~ ERROR wrong number of type arguments: expected at least 1, found 0
|
||||
let _: Vec;
|
||||
//~^ ERROR E0243
|
||||
//~| NOTE expected at least 1 type arguments, found 0
|
||||
}
|
||||
|
@ -17,5 +17,6 @@ struct Vec<T, A = Heap>(
|
||||
|
||||
fn main() {
|
||||
let _: Vec<isize, Heap, bool>;
|
||||
//~^ ERROR wrong number of type arguments: expected at most 2, found 3
|
||||
//~^ ERROR E0244
|
||||
//~| NOTE expected at most 2 type arguments, found 3
|
||||
}
|
||||
|
@ -8,6 +8,8 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
fn fn1(0: Box) {} //~ ERROR: wrong number of type arguments: expected 1, found 0
|
||||
fn fn1(0: Box) {}
|
||||
//~^ ERROR E0243
|
||||
//~| NOTE expected 1 type arguments, found 0
|
||||
|
||||
fn main() {}
|
||||
|
@ -18,6 +18,11 @@ fn main()
|
||||
vfnfer.push(box h);
|
||||
println!("{:?}",(vfnfer[0] as Fn)(3));
|
||||
//~^ ERROR the precise format of `Fn`-family traits'
|
||||
//~| ERROR wrong number of type arguments: expected 1, found 0
|
||||
//~| ERROR E0243
|
||||
//~| NOTE expected 1 type arguments, found 0
|
||||
//~| ERROR the value of the associated type `Output` (from the trait `std::ops::FnOnce`)
|
||||
//~| NOTE in this expansion of println!
|
||||
//~| NOTE in this expansion of println!
|
||||
//~| NOTE in this expansion of println!
|
||||
//~| NOTE in this expansion of println!
|
||||
}
|
||||
|
@ -9,20 +9,27 @@
|
||||
// except according to those terms.
|
||||
|
||||
fn foo1<T:Copy<U>, U>(x: T) {}
|
||||
//~^ ERROR: wrong number of type arguments: expected 0, found 1
|
||||
//~^ ERROR E0244
|
||||
//~| NOTE expected no type arguments, found 1
|
||||
|
||||
trait Trait: Copy<Send> {}
|
||||
//~^ ERROR: wrong number of type arguments: expected 0, found 1
|
||||
//~^ ERROR E0244
|
||||
//~| NOTE expected no type arguments, found 1
|
||||
|
||||
struct MyStruct1<T: Copy<T>>;
|
||||
//~^ ERROR wrong number of type arguments: expected 0, found 1
|
||||
//~^ ERROR E0244
|
||||
//~| NOTE expected no type arguments, found 1
|
||||
|
||||
struct MyStruct2<'a, T: Copy<'a>>;
|
||||
//~^ ERROR: wrong number of lifetime parameters: expected 0, found 1
|
||||
//~| NOTE unexpected lifetime parameter
|
||||
|
||||
|
||||
fn foo2<'a, T:Copy<'a, U>, U>(x: T) {}
|
||||
//~^ ERROR: wrong number of type arguments: expected 0, found 1
|
||||
//~^^ ERROR: wrong number of lifetime parameters: expected 0, found 1
|
||||
//~^ ERROR E0244
|
||||
//~| NOTE expected no type arguments, found 1
|
||||
//~| ERROR: wrong number of lifetime parameters: expected 0, found 1
|
||||
//~| NOTE unexpected lifetime parameter
|
||||
|
||||
fn main() {
|
||||
}
|
||||
|
@ -17,5 +17,6 @@ struct Foo<'a, T:'a> {
|
||||
|
||||
pub fn main() {
|
||||
let c: Foo<_, _> = Foo { r: &5 };
|
||||
//~^ ERROR wrong number of type arguments: expected 1, found 2
|
||||
//~^ ERROR E0244
|
||||
//~| NOTE expected 1 type arguments, found 2
|
||||
}
|
||||
|
@ -17,5 +17,6 @@ struct Foo<'a, T:'a> {
|
||||
|
||||
pub fn main() {
|
||||
let c: Foo<_, usize> = Foo { r: &5 };
|
||||
//~^ ERROR wrong number of type arguments: expected 1, found 2
|
||||
//~^ ERROR E0244
|
||||
//~| NOTE expected 1 type arguments, found 2
|
||||
}
|
||||
|
@ -13,7 +13,8 @@
|
||||
trait Trait {}
|
||||
|
||||
fn f<F:Trait(isize) -> isize>(x: F) {}
|
||||
//~^ ERROR wrong number of type arguments: expected 0, found 1
|
||||
//~^ ERROR E0244
|
||||
//~| NOTE expected no type arguments, found 1
|
||||
//~| ERROR associated type `Output` not found
|
||||
|
||||
fn main() {}
|
||||
|
Loading…
Reference in New Issue
Block a user