about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2018-12-08 20:04:14 +0100
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2018-12-08 20:04:14 +0100
commit05cea31c8dea7e5c4c8721e66b72588cbeb4b949 (patch)
treedc1e7af7e76142370a3560a36052f0ff17ea7c29 /src/test
parent118e052d84157a675649fe640e3d56f264475a3a (diff)
downloadrust-05cea31c8dea7e5c4c8721e66b72588cbeb4b949.tar.gz
rust-05cea31c8dea7e5c4c8721e66b72588cbeb4b949.zip
fix span for invalid number of parameters in trait method
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/error-codes/E0050.stderr8
-rw-r--r--src/test/ui/trait-method-number-parameters.rs23
-rw-r--r--src/test/ui/trait-method-number-parameters.stderr13
-rw-r--r--src/test/ui/traits/trait-impl-different-num-params.stderr2
4 files changed, 41 insertions, 5 deletions
diff --git a/src/test/ui/error-codes/E0050.stderr b/src/test/ui/error-codes/E0050.stderr
index bff3b7b16b9..6c797e00731 100644
--- a/src/test/ui/error-codes/E0050.stderr
+++ b/src/test/ui/error-codes/E0050.stderr
@@ -2,7 +2,7 @@ error[E0050]: method `foo` has 1 parameter but the declaration in trait `Foo::fo
   --> $DIR/E0050.rs:20:12
    |
 LL |     fn foo(&self, x: u8) -> bool;
-   |                      -- trait requires 2 parameters
+   |            ------------ trait requires 2 parameters
 ...
 LL |     fn foo(&self) -> bool { true } //~ ERROR E0050
    |            ^^^^^ expected 2 parameters, found 1
@@ -11,19 +11,19 @@ error[E0050]: method `bar` has 1 parameter but the declaration in trait `Foo::ba
   --> $DIR/E0050.rs:21:12
    |
 LL |     fn bar(&self, x: u8, y: u8, z: u8);
-   |                                    -- trait requires 4 parameters
+   |            -------------------------- trait requires 4 parameters
 ...
 LL |     fn bar(&self) { } //~ ERROR E0050
    |            ^^^^^ expected 4 parameters, found 1
 
 error[E0050]: method `less` has 4 parameters but the declaration in trait `Foo::less` has 1
-  --> $DIR/E0050.rs:22:37
+  --> $DIR/E0050.rs:22:13
    |
 LL |     fn less(&self);
    |             ----- trait requires 1 parameter
 ...
 LL |     fn less(&self, x: u8, y: u8, z: u8) { } //~ ERROR E0050
-   |                                     ^^ expected 1 parameter, found 4
+   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 1 parameter, found 4
 
 error: aborting due to 3 previous errors
 
diff --git a/src/test/ui/trait-method-number-parameters.rs b/src/test/ui/trait-method-number-parameters.rs
new file mode 100644
index 00000000000..c2591e4bda6
--- /dev/null
+++ b/src/test/ui/trait-method-number-parameters.rs
@@ -0,0 +1,23 @@
+// Copyright 2018 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.
+
+trait Foo {
+    fn foo(&mut self, x: i32, y: i32) -> i32;
+}
+
+impl Foo for i32 {
+    fn foo(
+        &mut self, //~ ERROR
+        x: i32,
+    ) {
+    }
+}
+
+fn main() {}
diff --git a/src/test/ui/trait-method-number-parameters.stderr b/src/test/ui/trait-method-number-parameters.stderr
new file mode 100644
index 00000000000..98a08d2474d
--- /dev/null
+++ b/src/test/ui/trait-method-number-parameters.stderr
@@ -0,0 +1,13 @@
+error[E0050]: method `foo` has 2 parameters but the declaration in trait `Foo::foo` has 3
+  --> $DIR/trait-method-number-parameters.rs:17:9
+   |
+LL |       fn foo(&mut self, x: i32, y: i32) -> i32;
+   |              ------------------------- trait requires 3 parameters
+...
+LL | /         &mut self, //~ ERROR
+LL | |         x: i32,
+   | |______________^ expected 3 parameters, found 2
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0050`.
diff --git a/src/test/ui/traits/trait-impl-different-num-params.stderr b/src/test/ui/traits/trait-impl-different-num-params.stderr
index c3bbf99b06a..18024449d81 100644
--- a/src/test/ui/traits/trait-impl-different-num-params.stderr
+++ b/src/test/ui/traits/trait-impl-different-num-params.stderr
@@ -2,7 +2,7 @@ error[E0050]: method `bar` has 1 parameter but the declaration in trait `foo::ba
   --> $DIR/trait-impl-different-num-params.rs:15:12
    |
 LL |     fn bar(&self, x: usize) -> Self;
-   |                      ----- trait requires 2 parameters
+   |            --------------- trait requires 2 parameters
 ...
 LL |     fn bar(&self) -> isize {
    |            ^^^^^ expected 2 parameters, found 1