diff options
| author | Andy Russell <arussell123@gmail.com> | 2018-10-03 22:21:05 -0400 |
|---|---|---|
| committer | Andy Russell <arussell123@gmail.com> | 2018-10-05 10:33:19 -0400 |
| commit | f5db4114102861acd004c8104dde7372010b156e (patch) | |
| tree | d172d69f72e0f9fca4a2323a5b840c281e01f57f /src/test/ui/parser | |
| parent | 6ddab3e078bc25bd101d6885427b8a1032f8f60c (diff) | |
| download | rust-f5db4114102861acd004c8104dde7372010b156e.tar.gz rust-f5db4114102861acd004c8104dde7372010b156e.zip | |
add suggestion for inverted function parameters
Fixes #54065.
Diffstat (limited to 'src/test/ui/parser')
| -rw-r--r-- | src/test/ui/parser/inverted-parameters.rs | 39 | ||||
| -rw-r--r-- | src/test/ui/parser/inverted-parameters.stderr | 47 |
2 files changed, 86 insertions, 0 deletions
diff --git a/src/test/ui/parser/inverted-parameters.rs b/src/test/ui/parser/inverted-parameters.rs new file mode 100644 index 00000000000..a100debbf12 --- /dev/null +++ b/src/test/ui/parser/inverted-parameters.rs @@ -0,0 +1,39 @@ +// 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. + +struct S; + +impl S { + fn foo(&self, &str bar) {} + //~^ ERROR expected one of `:` or `@` + //~| HELP declare the type after the parameter binding + //~| SUGGESTION <identifier>: <type> +} + +fn baz(S quux, xyzzy: i32) {} +//~^ ERROR expected one of `:` or `@` +//~| HELP declare the type after the parameter binding +//~| SUGGESTION <identifier>: <type> + +fn one(i32 a b) {} +//~^ ERROR expected one of `:` or `@` + +fn pattern((i32, i32) (a, b)) {} +//~^ ERROR expected `:` + +fn fizz(i32) {} +//~^ ERROR expected one of `:` or `@` + +fn missing_colon(quux S) {} +//~^ ERROR expected one of `:` or `@` +//~| HELP declare the type after the parameter binding +//~| SUGGESTION <identifier>: <type> + +fn main() {} diff --git a/src/test/ui/parser/inverted-parameters.stderr b/src/test/ui/parser/inverted-parameters.stderr new file mode 100644 index 00000000000..3f4f0615bc8 --- /dev/null +++ b/src/test/ui/parser/inverted-parameters.stderr @@ -0,0 +1,47 @@ +error: expected one of `:` or `@`, found `bar` + --> $DIR/inverted-parameters.rs:14:24 + | +LL | fn foo(&self, &str bar) {} + | -----^^^ + | | | + | | expected one of `:` or `@` here + | help: declare the type after the parameter binding: `<identifier>: <type>` + +error: expected one of `:` or `@`, found `quux` + --> $DIR/inverted-parameters.rs:20:10 + | +LL | fn baz(S quux, xyzzy: i32) {} + | --^^^^ + | | | + | | expected one of `:` or `@` here + | help: declare the type after the parameter binding: `<identifier>: <type>` + +error: expected one of `:` or `@`, found `a` + --> $DIR/inverted-parameters.rs:25:12 + | +LL | fn one(i32 a b) {} + | ^ expected one of `:` or `@` here + +error: expected `:`, found `(` + --> $DIR/inverted-parameters.rs:28:23 + | +LL | fn pattern((i32, i32) (a, b)) {} + | ^ expected `:` + +error: expected one of `:` or `@`, found `)` + --> $DIR/inverted-parameters.rs:31:12 + | +LL | fn fizz(i32) {} + | ^ expected one of `:` or `@` here + +error: expected one of `:` or `@`, found `S` + --> $DIR/inverted-parameters.rs:34:23 + | +LL | fn missing_colon(quux S) {} + | -----^ + | | | + | | expected one of `:` or `@` here + | help: declare the type after the parameter binding: `<identifier>: <type>` + +error: aborting due to 6 previous errors + |
