summaryrefslogtreecommitdiffstats
path: root/src/test/ui/parser/inverted-parameters.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/test/ui/parser/inverted-parameters.rs32
1 files changed, 32 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 000000000..5c4272504
--- /dev/null
+++ b/src/test/ui/parser/inverted-parameters.rs
@@ -0,0 +1,32 @@
+struct S;
+
+impl S {
+ fn foo(&self, &str bar) {}
+ //~^ ERROR expected one of `:`, `@`
+ //~| HELP declare the type after the parameter binding
+ //~| SUGGESTION <identifier>: <type>
+}
+
+fn baz(S quux, xyzzy: i32) {}
+//~^ ERROR expected one of `:`, `@`
+//~| HELP declare the type after the parameter binding
+//~| SUGGESTION <identifier>: <type>
+
+fn one(i32 a b) {}
+//~^ ERROR expected one of `:`, `@`
+
+fn pattern((i32, i32) (a, b)) {}
+//~^ ERROR expected one of `:`
+
+fn fizz(i32) {}
+//~^ ERROR expected one of `:`, `@`
+//~| HELP if this is a parameter name, give it a type
+//~| HELP if this is a `self` type, give it a parameter name
+//~| HELP if this is a type, explicitly ignore the parameter name
+
+fn missing_colon(quux S) {}
+//~^ ERROR expected one of `:`, `@`
+//~| HELP declare the type after the parameter binding
+//~| SUGGESTION <identifier>: <type>
+
+fn main() {}