summaryrefslogtreecommitdiffstats
path: root/src/test/ui/binding/optional_comma_in_match_arm.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/binding/optional_comma_in_match_arm.rs')
-rw-r--r--src/test/ui/binding/optional_comma_in_match_arm.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/test/ui/binding/optional_comma_in_match_arm.rs b/src/test/ui/binding/optional_comma_in_match_arm.rs
new file mode 100644
index 000000000..fc268bf2a
--- /dev/null
+++ b/src/test/ui/binding/optional_comma_in_match_arm.rs
@@ -0,0 +1,40 @@
+// run-pass
+#![allow(unused_unsafe)]
+// ignore-pretty issue #37199
+#![allow(while_true)]
+
+fn main() {
+ let x = 1;
+
+ match x {
+ 1 => loop { break; },
+ 2 => while true { break; },
+ 3 => if true { () },
+ 4 => if true { () } else { () },
+ 5 => match () { () => () },
+ 6 => { () },
+ 7 => unsafe { () },
+ _ => (),
+ }
+
+ match x {
+ 1 => loop { break; }
+ 2 => while true { break; }
+ 3 => if true { () }
+ 4 => if true { () } else { () }
+ 5 => match () { () => () }
+ 6 => { () }
+ 7 => unsafe { () }
+ _ => ()
+ }
+
+ let r: &i32 = &x;
+
+ match r {
+ // Absence of comma should not cause confusion between a pattern
+ // and a bitwise and.
+ &1 => if true { () } else { () }
+ &2 => (),
+ _ =>()
+ }
+}