提交 545f2234 编写于 作者: B bors

Auto merge of #53584 - mcr431:Fix-#53525, r=varkor

Fix #53525  - Unify E0243, E0244, E0087, E0088, E0089, and E0090 into E0107

Fix #53525

This pr merges all errors related to too many or too few generic arguments in types and functions. E0243, E0244, E0087, E0088, E0089, E0090 errors will no longer be emitted and E0107 will be used instead.
......@@ -99,12 +99,6 @@ enum GenericArgPosition {
MethodCall,
}
// FIXME(#53525): these error codes should all be unified.
struct GenericArgMismatchErrorCode {
lifetimes: (&'static str, &'static str),
types: (&'static str, &'static str),
}
/// Dummy type used for the `Self` of a `TraitRef` created for converting
/// a trait object, and which gets removed in `ExistentialTraitRef`.
/// This type must not appear anywhere in other converted types.
......@@ -262,10 +256,6 @@ pub fn check_generic_arg_count_for_call(
},
def.parent.is_none() && def.has_self, // `has_self`
seg.infer_types || suppress_mismatch, // `infer_types`
GenericArgMismatchErrorCode {
lifetimes: ("E0090", "E0088"),
types: ("E0089", "E0087"),
},
)
}
......@@ -279,7 +269,6 @@ fn check_generic_arg_count(
position: GenericArgPosition,
has_self: bool,
infer_types: bool,
error_codes: GenericArgMismatchErrorCode,
) -> bool {
// At this stage we are guaranteed that the generic arguments are in the correct order, e.g.
// that lifetimes will proceed types. So it suffices to check the number of each generic
......@@ -325,8 +314,7 @@ fn check_generic_arg_count(
}
}
let check_kind_count = |error_code: (&str, &str),
kind,
let check_kind_count = |kind,
required,
permitted,
provided,
......@@ -384,13 +372,7 @@ fn check_generic_arg_count(
bound,
provided,
),
DiagnosticId::Error({
if provided <= permitted {
error_code.0
} else {
error_code.1
}
}.into())
DiagnosticId::Error("E0107".into())
).span_label(span, label).emit();
provided > required // `suppress_error`
......@@ -398,7 +380,6 @@ fn check_generic_arg_count(
if !infer_lifetimes || arg_counts.lifetimes > param_counts.lifetimes {
check_kind_count(
error_codes.lifetimes,
"lifetime",
param_counts.lifetimes,
param_counts.lifetimes,
......@@ -409,7 +390,6 @@ fn check_generic_arg_count(
if !infer_types
|| arg_counts.types > param_counts.types - defaults.types - has_self as usize {
check_kind_count(
error_codes.types,
"type",
param_counts.types - defaults.types - has_self as usize,
param_counts.types - has_self as usize,
......@@ -587,10 +567,6 @@ fn create_substs_for_ast_path(&self,
GenericArgPosition::Type,
has_self,
infer_types,
GenericArgMismatchErrorCode {
lifetimes: ("E0107", "E0107"),
types: ("E0243", "E0244"),
},
);
let is_object = self_ty.map_or(false, |ty| ty.sty == TRAIT_OBJECT_DUMMY_SELF);
......
......@@ -1041,9 +1041,11 @@ enum NightsWatch {}
"##,
E0087: r##"
#### Note: this error code is no longer emitted by the compiler.
Too many type arguments were supplied for a function. For example:
```compile_fail,E0087
```compile_fail,E0107
fn foo<T>() {}
fn main() {
......@@ -1057,9 +1059,11 @@ fn main() {
"##,
E0088: r##"
#### Note: this error code is no longer emitted by the compiler.
You gave too many lifetime arguments. Erroneous code example:
```compile_fail,E0088
```compile_fail,E0107
fn f() {}
fn main() {
......@@ -1103,9 +1107,11 @@ fn main() {
"##,
E0089: r##"
#### Note: this error code is no longer emitted by the compiler.
Too few type arguments were supplied for a function. For example:
```compile_fail,E0089
```compile_fail,E0107
fn foo<T, U>() {}
fn main() {
......@@ -1116,7 +1122,7 @@ fn main() {
Note that if a function takes multiple type arguments but you want the compiler
to infer some of them, you can use type placeholders:
```compile_fail,E0089
```compile_fail,E0107
fn foo<T, U>(x: T) {}
fn main() {
......@@ -1129,9 +1135,11 @@ fn main() {
"##,
E0090: r##"
#### Note: this error code is no longer emitted by the compiler.
You gave too few lifetime arguments. Example:
```compile_fail,E0090
```compile_fail,E0107
fn foo<'a: 'b, 'b: 'a>() {}
fn main() {
......@@ -1258,18 +1266,34 @@ fn main() {
"##,
E0107: r##"
This error means that an incorrect number of lifetime parameters were provided
for a type (like a struct or enum) or trait:
This error means that an incorrect number of generic arguments were provided:
```compile_fail,E0107
struct Foo<'a, 'b>(&'a str, &'b str);
enum Bar { A, B, C }
struct Foo<T> { x: T }
struct Bar { x: Foo } // error: wrong number of type arguments:
// expected 1, found 0
struct Baz<S, T> { x: Foo<S, T> } // error: wrong number of type arguments:
// expected 1, found 2
struct Baz<'a> {
foo: Foo<'a>, // error: expected 2, found 1
bar: Bar<'a>, // error: expected 0, found 1
fn foo<T, U>(x: T, y: U) {}
fn main() {
let x: bool = true;
foo::<bool>(x); // error: wrong number of type arguments:
// expected 2, found 1
foo::<bool, i32, i32>(x, 2, 4); // error: wrong number of type arguments:
// expected 2, found 3
}
fn f() {}
fn main() {
f::<'static>(); // error: wrong number of lifetime arguments:
// expected 0, found 1
}
```
"##,
E0109: r##"
......@@ -2397,13 +2421,15 @@ fn baz<I>(x: &<I as Foo>::A) where I: Foo<A=Bar> {}
"##,
E0243: r##"
#### Note: this error code is no longer emitted by the compiler.
This error indicates that not enough type parameters were found in a type or
trait.
For example, the `Foo` struct below is defined to be generic in `T`, but the
type parameter is missing in the definition of `Bar`:
```compile_fail,E0243
```compile_fail,E0107
struct Foo<T> { x: T }
struct Bar { x: Foo }
......@@ -2411,13 +2437,15 @@ struct Bar { x: Foo }
"##,
E0244: r##"
#### Note: this error code is no longer emitted by the compiler.
This error indicates that too many type parameters were found in a type or
trait.
For example, the `Foo` struct below has no type parameters, but is supplied
with two in the definition of `Bar`:
```compile_fail,E0244
```compile_fail,E0107
struct Foo { x: bool }
struct Bar<S, T> { x: Foo<S, T> }
......
error[E0087]: wrong number of type arguments: expected 1, found 2
error[E0107]: wrong number of type arguments: expected 1, found 2
--> $DIR/bad-mid-path-type-params.rs:40:28
|
LL | let _ = S::new::<isize,f64>(1, 1.0);
......@@ -10,13 +10,13 @@ error[E0107]: wrong number of lifetime arguments: expected 0, found 1
LL | let _ = S::<'a,isize>::new::<f64>(1, 1.0);
| ^^ unexpected lifetime argument
error[E0087]: wrong number of type arguments: expected 1, found 2
error[E0107]: wrong number of type arguments: expected 1, found 2
--> $DIR/bad-mid-path-type-params.rs:46:36
|
LL | let _: S2 = Trait::new::<isize,f64>(1, 1.0);
| ^^^ unexpected type argument
error[E0088]: wrong number of lifetime arguments: expected 0, found 1
error[E0107]: wrong number of lifetime arguments: expected 0, found 1
--> $DIR/bad-mid-path-type-params.rs:49:25
|
LL | let _: S2 = Trait::<'a,isize>::new::<f64>(1, 1.0);
......@@ -24,5 +24,4 @@ LL | let _: S2 = Trait::<'a,isize>::new::<f64>(1, 1.0);
error: aborting due to 4 previous errors
Some errors occurred: E0087, E0088, E0107.
For more information about an error, try `rustc --explain E0087`.
For more information about this error, try `rustc --explain E0107`.
error[E0090]: wrong number of lifetime arguments: expected 2, found 1
error[E0107]: wrong number of lifetime arguments: expected 2, found 1
--> $DIR/constructor-lifetime-args.rs:27:5
|
LL | S::<'static>(&0, &0);
| ^^^^^^^^^^^^ expected 2 lifetime arguments
error[E0088]: wrong number of lifetime arguments: expected 2, found 3
error[E0107]: wrong number of lifetime arguments: expected 2, found 3
--> $DIR/constructor-lifetime-args.rs:29:27
|
LL | S::<'static, 'static, 'static>(&0, &0);
| ^^^^^^^ unexpected lifetime argument
error[E0090]: wrong number of lifetime arguments: expected 2, found 1
error[E0107]: wrong number of lifetime arguments: expected 2, found 1
--> $DIR/constructor-lifetime-args.rs:32:5
|
LL | E::V::<'static>(&0);
| ^^^^^^^^^^^^^^^ expected 2 lifetime arguments
error[E0088]: wrong number of lifetime arguments: expected 2, found 3
error[E0107]: wrong number of lifetime arguments: expected 2, found 3
--> $DIR/constructor-lifetime-args.rs:34:30
|
LL | E::V::<'static, 'static, 'static>(&0);
......@@ -24,5 +24,4 @@ LL | E::V::<'static, 'static, 'static>(&0);
error: aborting due to 4 previous errors
Some errors occurred: E0088, E0090.
For more information about an error, try `rustc --explain E0088`.
For more information about this error, try `rustc --explain E0107`.
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn foo() {}
fn bar<T>() {}
fn main() {
foo::<f64>(); //~ ERROR wrong number of type arguments: expected 0, found 1 [E0087]
bar::<f64, u64>(); //~ ERROR wrong number of type arguments: expected 1, found 2 [E0087]
}
error[E0087]: wrong number of type arguments: expected 0, found 1
--> $DIR/E0087.rs:15:11
|
LL | foo::<f64>(); //~ ERROR wrong number of type arguments: expected 0, found 1 [E0087]
| ^^^ unexpected type argument
error[E0087]: wrong number of type arguments: expected 1, found 2
--> $DIR/E0087.rs:17:16
|
LL | bar::<f64, u64>(); //~ ERROR wrong number of type arguments: expected 1, found 2 [E0087]
| ^^^ unexpected type argument
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0087`.
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn f() {}
fn g<'a>() -> &'a u8 { loop {} }
fn main() {
f::<'static>(); //~ ERROR E0088
g::<'static, 'static>(); //~ ERROR E0088
}
error[E0088]: wrong number of lifetime arguments: expected 0, found 1
--> $DIR/E0088.rs:15:9
|
LL | f::<'static>(); //~ ERROR E0088
| ^^^^^^^ unexpected lifetime argument
error[E0088]: wrong number of lifetime arguments: expected 1, found 2
--> $DIR/E0088.rs:16:18
|
LL | g::<'static, 'static>(); //~ ERROR E0088
| ^^^^^^^ unexpected lifetime argument
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0088`.
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn foo<T, U>() {}
fn main() {
foo::<f64>(); //~ ERROR wrong number of type arguments: expected 2, found 1 [E0089]
}
error[E0089]: wrong number of type arguments: expected 2, found 1
--> $DIR/E0089.rs:14:5
|
LL | foo::<f64>(); //~ ERROR wrong number of type arguments: expected 2, found 1 [E0089]
| ^^^^^^^^^^ expected 2 type arguments
error: aborting due to previous error
For more information about this error, try `rustc --explain E0089`.
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
fn foo<'a: 'b, 'b: 'a>() {}
fn main() {
foo::<'static>(); //~ ERROR wrong number of lifetime arguments: expected 2, found 1 [E0090]
}
error[E0090]: wrong number of lifetime arguments: expected 2, found 1
--> $DIR/E0090.rs:14:5
|
LL | foo::<'static>(); //~ ERROR wrong number of lifetime arguments: expected 2, found 1 [E0090]
| ^^^^^^^^^^^^^^ expected 2 lifetime arguments
error: aborting due to previous error
For more information about this error, try `rustc --explain E0090`.
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
struct Foo<T> { x: T }
struct Bar { x: Foo }
//~^ ERROR wrong number of type arguments: expected 1, found 0 [E0243]
fn main() {
}
error[E0243]: wrong number of type arguments: expected 1, found 0
--> $DIR/E0243.rs:12:17
|
LL | struct Bar { x: Foo }
| ^^^ expected 1 type argument
error: aborting due to previous error
For more information about this error, try `rustc --explain E0243`.
// Copyright 2016 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
struct Foo { x: bool }
struct Bar<S, T> { x: Foo<S, T> }
//~^ ERROR wrong number of type arguments: expected 0, found 2 [E0244]
fn main() {
}
error[E0244]: wrong number of type arguments: expected 0, found 2
--> $DIR/E0244.rs:12:23
|
LL | struct Bar<S, T> { x: Foo<S, T> }
| ^^^^^^^^^ 2 unexpected type arguments
error: aborting due to previous error
For more information about this error, try `rustc --explain E0244`.
error[E0088]: wrong number of lifetime arguments: expected 1, found 2
error[E0107]: wrong number of lifetime arguments: expected 1, found 2
--> $DIR/generic-arg-mismatch-recover.rs:16:20
|
LL | Foo::<'static, 'static, ()>(&0); //~ ERROR wrong number of lifetime arguments
......@@ -13,13 +13,13 @@ LL | Foo::<'static, 'static, ()>(&0); //~ ERROR wrong number of lifetime arg
= note: expected type `&'static ()`
found type `&{integer}`
error[E0088]: wrong number of lifetime arguments: expected 1, found 2
error[E0107]: wrong number of lifetime arguments: expected 1, found 2
--> $DIR/generic-arg-mismatch-recover.rs:19:20
|
LL | Bar::<'static, 'static, ()>(&()); //~ ERROR wrong number of lifetime arguments
| ^^^^^^^ unexpected lifetime argument
error[E0087]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/generic-arg-mismatch-recover.rs:19:29
|
LL | Bar::<'static, 'static, ()>(&()); //~ ERROR wrong number of lifetime arguments
......@@ -27,5 +27,5 @@ LL | Bar::<'static, 'static, ()>(&()); //~ ERROR wrong number of lifetime ar
error: aborting due to 4 previous errors
Some errors occurred: E0087, E0088, E0308.
For more information about an error, try `rustc --explain E0087`.
Some errors occurred: E0107, E0308.
For more information about an error, try `rustc --explain E0107`.
error[E0243]: wrong number of type arguments: expected at least 2, found 1
error[E0107]: wrong number of type arguments: expected at least 2, found 1
--> $DIR/generic-impl-less-params-with-defaults.rs:21:5
|
LL | Foo::<isize>::new();
......@@ -6,4 +6,4 @@ LL | Foo::<isize>::new();
error: aborting due to previous error
For more information about this error, try `rustc --explain E0243`.
For more information about this error, try `rustc --explain E0107`.
error[E0244]: wrong number of type arguments: expected at most 2, found 3
error[E0107]: wrong number of type arguments: expected at most 2, found 3
--> $DIR/generic-impl-more-params-with-defaults.rs:23:5
|
LL | Vec::<isize, Heap, bool>::new();
......@@ -6,4 +6,4 @@ LL | Vec::<isize, Heap, bool>::new();
error: aborting due to previous error
For more information about this error, try `rustc --explain E0244`.
For more information about this error, try `rustc --explain E0107`.
......@@ -17,5 +17,5 @@ struct Vec<T, A = Heap>(
fn main() {
let _: Vec;
//~^ ERROR wrong number of type arguments: expected at least 1, found 0 [E0243]
//~^ ERROR wrong number of type arguments: expected at least 1, found 0 [E0107]
}
error[E0243]: wrong number of type arguments: expected at least 1, found 0
error[E0107]: wrong number of type arguments: expected at least 1, found 0
--> $DIR/generic-type-less-params-with-defaults.rs:19:12
|
LL | let _: Vec;
......@@ -6,4 +6,4 @@ LL | let _: Vec;
error: aborting due to previous error
For more information about this error, try `rustc --explain E0243`.
For more information about this error, try `rustc --explain E0107`.
......@@ -17,5 +17,5 @@ struct Vec<T, A = Heap>(
fn main() {
let _: Vec<isize, Heap, bool>;
//~^ ERROR wrong number of type arguments: expected at most 2, found 3 [E0244]
//~^ ERROR wrong number of type arguments: expected at most 2, found 3 [E0107]
}
error[E0244]: wrong number of type arguments: expected at most 2, found 3
error[E0107]: wrong number of type arguments: expected at most 2, found 3
--> $DIR/generic-type-more-params-with-defaults.rs:19:12
|
LL | let _: Vec<isize, Heap, bool>;
......@@ -6,4 +6,4 @@ LL | let _: Vec<isize, Heap, bool>;
error: aborting due to previous error
For more information about this error, try `rustc --explain E0244`.
For more information about this error, try `rustc --explain E0107`.
error[E0087]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/issue-53251.rs:21:24
|
LL | S::f::<i64>();
......@@ -9,4 +9,4 @@ LL | impl_add!(a b);
error: aborting due to previous error
For more information about this error, try `rustc --explain E0087`.
For more information about this error, try `rustc --explain E0107`.
......@@ -9,6 +9,6 @@
// except according to those terms.
fn fn1(0: Box) {}
//~^ ERROR wrong number of type arguments: expected 1, found 0 [E0243]
//~^ ERROR wrong number of type arguments: expected 1, found 0 [E0107]
fn main() {}
error[E0243]: wrong number of type arguments: expected 1, found 0
error[E0107]: wrong number of type arguments: expected 1, found 0
--> $DIR/issue-14092.rs:11:11
|
LL | fn fn1(0: Box) {}
......@@ -6,4 +6,4 @@ LL | fn fn1(0: Box) {}
error: aborting due to previous error
For more information about this error, try `rustc --explain E0243`.
For more information about this error, try `rustc --explain E0107`.
......@@ -18,6 +18,6 @@ fn h(x:i32) -> i32 {3*x}
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 [E0243]
//~| ERROR wrong number of type arguments: expected 1, found 0 [E0107]
//~| ERROR the value of the associated type `Output` (from the trait `std::ops::FnOnce`)
}
......@@ -6,7 +6,7 @@ LL | println!("{:?}",(vfnfer[0] as Fn)(3));
|
= help: add #![feature(unboxed_closures)] to the crate attributes to enable
error[E0243]: wrong number of type arguments: expected 1, found 0
error[E0107]: wrong number of type arguments: expected 1, found 0
--> $DIR/issue-23024.rs:19:35
|
LL | println!("{:?}",(vfnfer[0] as Fn)(3));
......@@ -20,5 +20,5 @@ LL | println!("{:?}",(vfnfer[0] as Fn)(3));
error: aborting due to 3 previous errors
Some errors occurred: E0191, E0243, E0658.
For more information about an error, try `rustc --explain E0191`.
Some errors occurred: E0107, E0191, E0658.
For more information about an error, try `rustc --explain E0107`.
......@@ -9,7 +9,7 @@ LL | struct foo {
LL | x: T, //~ ERROR can't use type parameters from outer function
| ^ use of type variable from outer function
error[E0244]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/issue-3214.rs:16:26
|
LL | impl<T> Drop for foo<T> {
......@@ -17,5 +17,5 @@ LL | impl<T> Drop for foo<T> {
error: aborting due to 2 previous errors
Some errors occurred: E0244, E0401.
For more information about an error, try `rustc --explain E0244`.
Some errors occurred: E0107, E0401.
For more information about an error, try `rustc --explain E0107`.
error[E0090]: wrong number of lifetime arguments: expected 2, found 1
error[E0107]: wrong number of lifetime arguments: expected 2, found 1
--> $DIR/method-call-lifetime-args-fail.rs:26:7
|
LL | S.early::<'static>();
| ^^^^^ expected 2 lifetime arguments
error[E0088]: wrong number of lifetime arguments: expected 2, found 3
error[E0107]: wrong number of lifetime arguments: expected 2, found 3
--> $DIR/method-call-lifetime-args-fail.rs:28:33
|
LL | S.early::<'static, 'static, 'static>();
......@@ -178,13 +178,13 @@ note: the late bound lifetime parameter is introduced here
LL | fn late_unused_early<'a, 'b>(self) -> &'b u8 { loop {} }
| ^^
error[E0090]: wrong number of lifetime arguments: expected 2, found 1
error[E0107]: wrong number of lifetime arguments: expected 2, found 1
--> $DIR/method-call-lifetime-args-fail.rs:73:5
|
LL | S::early::<'static>(S);
| ^^^^^^^^^^^^^^^^^^^ expected 2 lifetime arguments
error[E0088]: wrong number of lifetime arguments: expected 2, found 3
error[E0107]: wrong number of lifetime arguments: expected 2, found 3
--> $DIR/method-call-lifetime-args-fail.rs:75:34
|
LL | S::early::<'static, 'static, 'static>(S);
......@@ -192,5 +192,4 @@ LL | S::early::<'static, 'static, 'static>(S);
error: aborting due to 18 previous errors
Some errors occurred: E0088, E0090.
For more information about an error, try `rustc --explain E0088`.
For more information about this error, try `rustc --explain E0107`.
error[E0244]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/seq-args.rs:14:13
|
LL | impl<T> seq<T> for Vec<T> { //~ ERROR wrong number of type arguments
| ^ unexpected type argument
error[E0244]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/seq-args.rs:17:10
|
LL | impl seq<bool> for u32 { //~ ERROR wrong number of type arguments
......@@ -12,4 +12,4 @@ LL | impl seq<bool> for u32 { //~ ERROR wrong number of type arguments
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0244`.
For more information about this error, try `rustc --explain E0107`.
......@@ -70,7 +70,7 @@ LL | x: 7,
= note: expected type `f32`
found type `{integer}`
error[E0244]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/structure-constructor-type-mismatch.rs:58:24
|
LL | let pt3 = PointF::<i32> { //~ ERROR wrong number of type arguments
......@@ -100,7 +100,7 @@ LL | y: 10, //~ ERROR mismatched types
= note: expected type `f32`
found type `{integer}`
error[E0244]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/structure-constructor-type-mismatch.rs:64:18
|
LL | PointF::<u32> { .. } => {} //~ ERROR wrong number of type arguments
......@@ -135,5 +135,5 @@ LL | PairF::<u32> { .. } => {} //~ ERROR mismatched types
error: aborting due to 13 previous errors
Some errors occurred: E0244, E0308.
For more information about an error, try `rustc --explain E0244`.
Some errors occurred: E0107, E0308.
For more information about an error, try `rustc --explain E0107`.
error[E0243]: wrong number of type arguments: expected 1, found 0
error[E0107]: wrong number of type arguments: expected 1, found 0
--> $DIR/tag-type-args.rs:15:11
|
LL | fn foo(c: quux) { assert!((false)); }
......@@ -6,4 +6,4 @@ LL | fn foo(c: quux) { assert!((false)); }
error: aborting due to previous error
For more information about this error, try `rustc --explain E0243`.
For more information about this error, try `rustc --explain E0107`.
......@@ -16,7 +16,7 @@ error[E0107]: wrong number of lifetime arguments: expected 1, found 2
LL | let _: S<'static, 'static>;
| ^^^^^^^ unexpected lifetime argument
error[E0243]: wrong number of type arguments: expected 1, found 0
error[E0107]: wrong number of type arguments: expected 1, found 0
--> $DIR/trait-object-vs-lifetime.rs:23:12
|
LL | let _: S<'static, 'static>;
......@@ -30,5 +30,5 @@ LL | let _: S<'static +, 'static>;
error: aborting due to 5 previous errors
Some errors occurred: E0107, E0224, E0243.
Some errors occurred: E0107, E0224.
For more information about an error, try `rustc --explain E0107`.
error[E0087]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/trait-test-2.rs:18:14
|
LL | 10.dup::<i32>(); //~ ERROR wrong number of type arguments: expected 0, found 1
| ^^^ unexpected type argument
error[E0087]: wrong number of type arguments: expected 1, found 2
error[E0107]: wrong number of type arguments: expected 1, found 2
--> $DIR/trait-test-2.rs:19:20
|
LL | 10.blah::<i32, i32>(); //~ ERROR wrong number of type arguments: expected 1, found 2
......@@ -37,5 +37,5 @@ LL | (box 10 as Box<bar>).dup();
error: aborting due to 5 previous errors
Some errors occurred: E0038, E0087, E0277.
Some errors occurred: E0038, E0107, E0277.
For more information about an error, try `rustc --explain E0038`.
......@@ -9,20 +9,20 @@
// except according to those terms.
fn foo1<T:Copy<U>, U>(x: T) {}
//~^ ERROR wrong number of type arguments: expected 0, found 1 [E0244]
//~^ ERROR wrong number of type arguments: expected 0, found 1 [E0107]
trait Trait: Copy<Send> {}
//~^ ERROR wrong number of type arguments: expected 0, found 1 [E0244]
//~^ ERROR wrong number of type arguments: expected 0, found 1 [E0107]
struct MyStruct1<T: Copy<T>>;
//~^ ERROR wrong number of type arguments: expected 0, found 1 [E0244]
//~^ ERROR wrong number of type arguments: expected 0, found 1 [E0107]
struct MyStruct2<'a, T: Copy<'a>>;
//~^ ERROR: wrong number of lifetime arguments: expected 0, found 1
//~^ ERROR: wrong number of lifetime arguments: expected 0, found 1 [E0107]
fn foo2<'a, T:Copy<'a, U>, U>(x: T) {}
//~^ ERROR wrong number of type arguments: expected 0, found 1 [E0244]
//~^ ERROR wrong number of type arguments: expected 0, found 1 [E0107]
//~| ERROR: wrong number of lifetime arguments: expected 0, found 1
fn main() {
......
error[E0244]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/typeck-builtin-bound-type-parameters.rs:11:16
|
LL | fn foo1<T:Copy<U>, U>(x: T) {}
| ^ unexpected type argument
error[E0244]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/typeck-builtin-bound-type-parameters.rs:14:19
|
LL | trait Trait: Copy<Send> {}
| ^^^^ unexpected type argument
error[E0244]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/typeck-builtin-bound-type-parameters.rs:17:26
|
LL | struct MyStruct1<T: Copy<T>>;
......@@ -28,7 +28,7 @@ error[E0107]: wrong number of lifetime arguments: expected 0, found 1
LL | fn foo2<'a, T:Copy<'a, U>, U>(x: T) {}
| ^^ unexpected lifetime argument
error[E0244]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/typeck-builtin-bound-type-parameters.rs:24:24
|
LL | fn foo2<'a, T:Copy<'a, U>, U>(x: T) {}
......@@ -36,5 +36,4 @@ LL | fn foo2<'a, T:Copy<'a, U>, U>(x: T) {}
error: aborting due to 6 previous errors
Some errors occurred: E0107, E0244.
For more information about an error, try `rustc --explain E0107`.
For more information about this error, try `rustc --explain E0107`.
......@@ -17,5 +17,5 @@ struct Foo<'a, T:'a> {
pub fn main() {
let c: Foo<_, _> = Foo { r: &5 };
//~^ ERROR wrong number of type arguments: expected 1, found 2 [E0244]
//~^ ERROR wrong number of type arguments: expected 1, found 2 [E0107]
}
error[E0244]: wrong number of type arguments: expected 1, found 2
error[E0107]: wrong number of type arguments: expected 1, found 2
--> $DIR/typeck_type_placeholder_lifetime_1.rs:19:19
|
LL | let c: Foo<_, _> = Foo { r: &5 };
......@@ -6,4 +6,4 @@ LL | let c: Foo<_, _> = Foo { r: &5 };
error: aborting due to previous error
For more information about this error, try `rustc --explain E0244`.
For more information about this error, try `rustc --explain E0107`.
......@@ -17,5 +17,5 @@ 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 [E0244]
//~^ ERROR wrong number of type arguments: expected 1, found 2 [E0107]
}
error[E0244]: wrong number of type arguments: expected 1, found 2
error[E0107]: wrong number of type arguments: expected 1, found 2
--> $DIR/typeck_type_placeholder_lifetime_2.rs:19:19
|
LL | let c: Foo<_, usize> = Foo { r: &5 };
......@@ -6,4 +6,4 @@ LL | let c: Foo<_, usize> = Foo { r: &5 };
error: aborting due to previous error
For more information about this error, try `rustc --explain E0244`.
For more information about this error, try `rustc --explain E0107`.
error[E0089]: wrong number of type arguments: expected 1, found 0
error[E0107]: wrong number of type arguments: expected 1, found 0
--> $DIR/ufcs-qpath-missing-params.rs:24:5
|
LL | <String as IntoCow>::into_cow("foo".to_string());
......@@ -6,4 +6,4 @@ LL | <String as IntoCow>::into_cow("foo".to_string());
error: aborting due to previous error
For more information about this error, try `rustc --explain E0089`.
For more information about this error, try `rustc --explain E0107`.
error[E0243]: wrong number of type arguments: expected 3, found 1
error[E0107]: wrong number of type arguments: expected 3, found 1
--> $DIR/unboxed-closure-sugar-wrong-number-number-type-parameters-3.rs:15:12
|
LL | fn foo(_: &Three())
......@@ -12,5 +12,5 @@ LL | fn foo(_: &Three())
error: aborting due to 2 previous errors
Some errors occurred: E0220, E0243.
For more information about an error, try `rustc --explain E0220`.
Some errors occurred: E0107, E0220.
For more information about an error, try `rustc --explain E0107`.
error[E0244]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/unboxed-closure-sugar-wrong-number-number-type-parameters.rs:15:15
|
LL | fn foo(_: Zero())
......@@ -12,5 +12,5 @@ LL | fn foo(_: Zero())
error: aborting due to 2 previous errors
Some errors occurred: E0220, E0244.
For more information about an error, try `rustc --explain E0220`.
Some errors occurred: E0107, E0220.
For more information about an error, try `rustc --explain E0107`.
......@@ -13,7 +13,7 @@
trait Trait {}
fn f<F:Trait(isize) -> isize>(x: F) {}
//~^ ERROR wrong number of type arguments: expected 0, found 1 [E0244]
//~^ ERROR wrong number of type arguments: expected 0, found 1 [E0107]
//~| ERROR E0220
fn main() {}
error[E0244]: wrong number of type arguments: expected 0, found 1
error[E0107]: wrong number of type arguments: expected 0, found 1
--> $DIR/unboxed-closure-sugar-wrong-trait.rs:15:13
|
LL | fn f<F:Trait(isize) -> isize>(x: F) {}
......@@ -12,5 +12,5 @@ LL | fn f<F:Trait(isize) -> isize>(x: F) {}
error: aborting due to 2 previous errors
Some errors occurred: E0220, E0244.
For more information about an error, try `rustc --explain E0220`.
Some errors occurred: E0107, E0220.
For more information about an error, try `rustc --explain E0107`.
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册