summaryrefslogtreecommitdiffstats
path: root/src/tools/rustfmt/tests/target/pattern.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/rustfmt/tests/target/pattern.rs')
-rw-r--r--src/tools/rustfmt/tests/target/pattern.rs98
1 files changed, 98 insertions, 0 deletions
diff --git a/src/tools/rustfmt/tests/target/pattern.rs b/src/tools/rustfmt/tests/target/pattern.rs
new file mode 100644
index 000000000..576018ac6
--- /dev/null
+++ b/src/tools/rustfmt/tests/target/pattern.rs
@@ -0,0 +1,98 @@
+// rustfmt-normalize_comments: true
+#![feature(exclusive_range_pattern)]
+use core::u8::MAX;
+
+fn main() {
+ let z = match x {
+ "pat1" => 1,
+ (ref x, ref mut y /* comment */) => 2,
+ };
+
+ if let <T as Trait>::CONST = ident {
+ do_smth();
+ }
+
+ let Some(ref xyz /* comment! */) = opt;
+
+ if let None = opt2 {
+ panic!("oh noes");
+ }
+
+ let foo @ bar(f) = 42;
+ let a::foo(..) = 42;
+ let [] = 42;
+ let [a, b, c] = 42;
+ let [a, b, c] = 42;
+ let [a, b, c, d, e, f, g] = 42;
+ let foo {} = 42;
+ let foo { .. } = 42;
+ let foo { x, y: ref foo, .. } = 42;
+ let foo {
+ x,
+ yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy: ref foo,
+ ..
+ } = 42;
+ let foo {
+ x,
+ yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy: ref foo,
+ } = 42;
+ let foo {
+ x,
+ yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy: ref foo,
+ ..
+ };
+ let foo {
+ x,
+ yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy: ref foo,
+ };
+
+ match b"12" {
+ [0, 1..MAX] => {}
+ _ => {}
+ }
+}
+
+impl<'a, 'b> ResolveGeneratedContentFragmentMutator<'a, 'b> {
+ fn mutate_fragment(&mut self, fragment: &mut Fragment) {
+ match **info {
+ GeneratedContentInfo::ContentItem(ContentItem::Counter(
+ ref counter_name,
+ counter_style,
+ )) => {}
+ }
+ }
+}
+
+fn issue_1319() {
+ if let (Event { .. }, ..) = ev_state {}
+}
+
+fn issue_1874() {
+ if let Some(()) = x {
+ y
+ }
+}
+
+fn combine_patterns() {
+ let x = match y {
+ Some(Some(Foo {
+ z: Bar(..),
+ a: Bar(..),
+ b: Bar(..),
+ })) => z,
+ _ => return,
+ };
+}
+
+fn slice_patterns() {
+ match b"123" {
+ [0, ..] => {}
+ [0, foo] => {}
+ _ => {}
+ }
+}
+
+fn issue3728() {
+ let foo = |(c,)| c;
+ foo((1,));
+}