about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2019-06-01 10:35:31 -0700
committerEsteban Küber <esteban@kuber.com.ar>2019-06-01 10:35:31 -0700
commit28859472f71cea497dbea12523e69dc23daaff76 (patch)
tree0d030e2079d030a4c0b33d4599bf05a18f230475 /src/test
parent8e595f561045756d33e99d4a1d418d4da504d31a (diff)
downloadrust-28859472f71cea497dbea12523e69dc23daaff76.tar.gz
rust-28859472f71cea497dbea12523e69dc23daaff76.zip
Point at individual type arguments on arg count mismatch
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/error-codes/E0049.rs10
-rw-r--r--src/test/ui/error-codes/E0049.stderr19
-rw-r--r--src/test/ui/issues/issue-36708.stderr4
-rw-r--r--src/test/ui/issues/type-arg-mismatch-due-to-impl-trait.stderr6
4 files changed, 30 insertions, 9 deletions
diff --git a/src/test/ui/error-codes/E0049.rs b/src/test/ui/error-codes/E0049.rs
index c141f8a8828..3dd910019bf 100644
--- a/src/test/ui/error-codes/E0049.rs
+++ b/src/test/ui/error-codes/E0049.rs
@@ -8,5 +8,15 @@ impl Foo for Bar {
     fn foo(x: bool) -> Self { Bar } //~ ERROR E0049
 }
 
+trait Fuzz {
+    fn fuzz<A: Default, B>(x: A, y: B) -> Self;
+}
+
+struct Baz;
+
+impl Fuzz for Baz {
+    fn fuzz(x: bool, y: bool) -> Self { Baz } //~ ERROR E0049
+}
+
 fn main() {
 }
diff --git a/src/test/ui/error-codes/E0049.stderr b/src/test/ui/error-codes/E0049.stderr
index 7e9b9e8efb9..c0cd31faa90 100644
--- a/src/test/ui/error-codes/E0049.stderr
+++ b/src/test/ui/error-codes/E0049.stderr
@@ -1,12 +1,23 @@
 error[E0049]: method `foo` has 0 type parameters but its trait declaration has 1 type parameter
-  --> $DIR/E0049.rs:8:5
+  --> $DIR/E0049.rs:8:11
    |
 LL |     fn foo<T: Default>(x: T) -> Self;
-   |     --------------------------------- expected 1 type parameter
+   |            - expected 1 type parameter
 ...
 LL |     fn foo(x: bool) -> Self { Bar }
-   |     ^^^^^^^^^^^^^^^^^^^^^^^ found 0 type parameters
+   |           ^ found 0 type parameters
 
-error: aborting due to previous error
+error[E0049]: method `fuzz` has 0 type parameters but its trait declaration has 2 type parameters
+  --> $DIR/E0049.rs:18:12
+   |
+LL |     fn fuzz<A: Default, B>(x: A, y: B) -> Self;
+   |             -           -
+   |             |
+   |             expected 2 type parameters
+...
+LL |     fn fuzz(x: bool, y: bool) -> Self { Baz }
+   |            ^ found 0 type parameters
+
+error: aborting due to 2 previous errors
 
 For more information about this error, try `rustc --explain E0049`.
diff --git a/src/test/ui/issues/issue-36708.stderr b/src/test/ui/issues/issue-36708.stderr
index 835094c4fdc..140f19f1ff7 100644
--- a/src/test/ui/issues/issue-36708.stderr
+++ b/src/test/ui/issues/issue-36708.stderr
@@ -1,8 +1,8 @@
 error[E0049]: method `foo` has 1 type parameter but its trait declaration has 0 type parameters
-  --> $DIR/issue-36708.rs:8:11
+  --> $DIR/issue-36708.rs:8:12
    |
 LL |     fn foo<T>() {}
-   |           ^^^ found 1 type parameter, expected 0
+   |            ^ found 1 type parameter, expected 0
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/issues/type-arg-mismatch-due-to-impl-trait.stderr b/src/test/ui/issues/type-arg-mismatch-due-to-impl-trait.stderr
index 3f1b10fab27..95328473555 100644
--- a/src/test/ui/issues/type-arg-mismatch-due-to-impl-trait.stderr
+++ b/src/test/ui/issues/type-arg-mismatch-due-to-impl-trait.stderr
@@ -1,11 +1,11 @@
 error[E0049]: method `foo` has 1 type parameter but its trait declaration has 0 type parameters
-  --> $DIR/type-arg-mismatch-due-to-impl-trait.rs:10:11
+  --> $DIR/type-arg-mismatch-due-to-impl-trait.rs:10:22
    |
 LL |     fn foo(&self, t: Self::T);
-   |     -------------------------- expected 0 type parameters
+   |           - expected 0 type parameters
 ...
 LL |     fn foo(&self, t: impl Clone) {}
-   |           ^ found 1 type parameter
+   |                      ^^^^^^^^^^ found 1 type parameter
 
 error: aborting due to previous error