Refactor generic argument count check in check/mod.rs

This commit is contained in:
varkor 2018-08-08 00:38:31 +01:00
parent 68b0e7dd99
commit 04d33bbdb3
10 changed files with 65 additions and 163 deletions

View file

@ -12,7 +12,7 @@ fn foo() {}
fn bar<T>() {}
fn main() {
foo::<f64>(); //~ ERROR expected at most 0 type parameters, found 1 type parameter [E0087]
foo::<f64>(); //~ ERROR wrong number of type arguments: expected 0, found 1 [E0087]
bar::<f64, u64>(); //~ ERROR expected at most 1 type parameter, found 2 type parameters [E0087]
bar::<f64, u64>(); //~ ERROR wrong number of type arguments: expected 1, found 2 [E0087]
}

View file

@ -1,14 +1,14 @@
error[E0087]: too many type parameters provided: expected at most 0 type parameters, found 1 type parameter
--> $DIR/E0087.rs:15:11
error[E0087]: wrong number of type arguments: expected 0, found 1
--> $DIR/E0087.rs:15:5
|
LL | foo::<f64>(); //~ ERROR expected at most 0 type parameters, found 1 type parameter [E0087]
| ^^^ expected 0 type parameters
LL | foo::<f64>(); //~ ERROR wrong number of type arguments: expected 0, found 1 [E0087]
| ^^^^^^^^^^ unexpected type argument
error[E0087]: too many type parameters provided: expected at most 1 type parameter, found 2 type parameters
--> $DIR/E0087.rs:17:16
error[E0087]: wrong number of type arguments: expected 1, found 2
--> $DIR/E0087.rs:17:5
|
LL | bar::<f64, u64>(); //~ ERROR expected at most 1 type parameter, found 2 type parameters [E0087]
| ^^^ expected 1 type parameter
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

View file

@ -1,14 +1,14 @@
error[E0088]: too many lifetime parameters provided: expected at most 0 lifetime parameters, found 1 lifetime parameter
--> $DIR/E0088.rs:15:9
error[E0088]: wrong number of lifetime arguments: expected 0, found 1
--> $DIR/E0088.rs:15:5
|
LL | f::<'static>(); //~ ERROR E0088
| ^^^^^^^ expected 0 lifetime parameters
| ^^^^^^^^^^^^ unexpected lifetime argument
error[E0088]: too many lifetime parameters provided: expected at most 1 lifetime parameter, found 2 lifetime parameters
--> $DIR/E0088.rs:16:18
error[E0088]: wrong number of lifetime arguments: expected 1, found 2
--> $DIR/E0088.rs:16:5
|
LL | g::<'static, 'static>(); //~ ERROR E0088
| ^^^^^^^ expected 1 lifetime parameter
| ^^^^^^^^^^^^^^^^^^^^^ unexpected lifetime argument
error: aborting due to 2 previous errors

View file

@ -11,5 +11,5 @@
fn foo<T, U>() {}
fn main() {
foo::<f64>(); //~ ERROR expected 2 type parameters, found 1 type parameter [E0089]
foo::<f64>(); //~ ERROR wrong number of type arguments: expected 2, found 1 [E0089]
}

View file

@ -1,8 +1,8 @@
error[E0089]: too few type parameters provided: expected 2 type parameters, found 1 type parameter
error[E0089]: wrong number of type arguments: expected 2, found 1
--> $DIR/E0089.rs:14:5
|
LL | foo::<f64>(); //~ ERROR expected 2 type parameters, found 1 type parameter [E0089]
| ^^^^^^^^^^ expected 2 type parameters
LL | foo::<f64>(); //~ ERROR wrong number of type arguments: expected 2, found 1 [E0089]
| ^^^^^^^^^^ expected 2 type arguments
error: aborting due to previous error

View file

@ -11,5 +11,5 @@
fn foo<'a: 'b, 'b: 'a>() {}
fn main() {
foo::<'static>(); //~ ERROR expected 2 lifetime parameters, found 1 lifetime parameter [E0090]
foo::<'static>(); //~ ERROR wrong number of lifetime arguments: expected 2, found 1 [E0090]
}

View file

@ -1,8 +1,8 @@
error[E0090]: too few lifetime parameters provided: expected 2 lifetime parameters, found 1 lifetime parameter
error[E0090]: wrong number of lifetime arguments: expected 2, found 1
--> $DIR/E0090.rs:14:5
|
LL | foo::<'static>(); //~ ERROR expected 2 lifetime parameters, found 1 lifetime parameter [E0090]
| ^^^^^^^^^^^^^^ expected 2 lifetime parameters
LL | foo::<'static>(); //~ ERROR wrong number of lifetime arguments: expected 2, found 1 [E0090]
| ^^^^^^^^^^^^^^ expected 2 lifetime arguments
error: aborting due to previous error