]> git.lizzy.rs Git - rust.git/blobdiff - tests/target/match.rs
Merge pull request #681 from rust-lang-nursery/comment-style
[rust.git] / tests / target / match.rs
index eab8c604084c5fcd7bcecfabfbe123bdcbb6e421..2c238ea8a685ff4214732d0471698017cf7662c5 100644 (file)
@@ -6,19 +6,18 @@ fn foo() {
         // Some comment.
         a => foo(),
         b if 0 < 42 => foo(),
-        c => { // Another comment.
+        c => {
+            // Another comment.
             // Comment.
             an_expression;
             foo()
         }
-        // Perhaps this should introduce braces?
-        Foo(ref bar) =>
-            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
+        Foo(ref bar) => {
+            aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+        }
         Pattern1 | Pattern2 | Pattern3 => false,
         Paternnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn |
-        Paternnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn => {
-            blah
-        }
+        Paternnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn => blah,
         Patternnnnnnnnnnnnnnnnnnn |
         Patternnnnnnnnnnnnnnnnnnn |
         Patternnnnnnnnnnnnnnnnnnn |
@@ -28,18 +27,27 @@ fn foo() {
         Patternnnnnnnnnnnnnnnnnnn if looooooooooooooooooong_guard => meh,
 
         Patternnnnnnnnnnnnnnnnnnnnnnnnn |
-        Patternnnnnnnnnnnnnnnnnnnnnnnnn if looooooooooooooooooooooooooooooooooooooooong_guard =>
-            meh,
+        Patternnnnnnnnnnnnnnnnnnnnnnnnn if looooooooooooooooooooooooooooooooooooooooong_guard => {
+            meh
+        }
 
         // Test that earlier patterns can take the guard space
-        (aaaa, bbbbb, ccccccc, aaaaa, bbbbbbbb, cccccc, aaaa, bbbbbbbb, cccccc, dddddd) |
+        (aaaa,
+         bbbbb,
+         ccccccc,
+         aaaaa,
+         bbbbbbbb,
+         cccccc,
+         aaaa,
+         bbbbbbbb,
+         cccccc,
+         dddddd) |
         Patternnnnnnnnnnnnnnnnnnnnnnnnn if loooooooooooooooooooooooooooooooooooooooooong_guard => {}
 
         _ => {}
         ast::PathParameters::AngleBracketedParameters(ref data) if data.lifetimes.len() > 0 ||
                                                                    data.types.len() > 0 ||
-                                                                   data.bindings.len() > 0 => {
-        }
+                                                                   data.bindings.len() > 0 => {}
     }
 
     let whatever = match something {
@@ -57,7 +65,7 @@ fn foo() {
 // Test that a match on an overflow line is laid out properly.
 fn main() {
     let sub_span =
-        match self.span.sub_span_after_keywooooooooooooooooooooord(use_item.span, keywords::As) {
+        match xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx {
             Some(sub_span) => Some(sub_span),
             None => sub_span,
         };
@@ -66,14 +74,225 @@ fn main() {
 // Test that one-line bodies align.
 fn main() {
     match r {
-        Variableeeeeeeeeeeeeeeeee => ("variable",
-                                      vec!("id","name","qualname","value","type","scopeid"),
-                                      true,
-                                      true),
-        Enummmmmmmmmmmmmmmmmmmmm => ("enum", vec!("id","qualname","scopeid","value"), true, true),
-        Variantttttttttttttttttttttttt => ("variant",
-                                           vec!("id","name","qualname","type","value","scopeid"),
-                                           true,
-                                           true),
+        Variableeeeeeeeeeeeeeeeee => {
+            ("variable",
+             vec!["id", "name", "qualname", "value", "type", "scopeid"],
+             true,
+             true)
+        }
+        Enummmmmmmmmmmmmmmmmmmmm => {
+            ("enum",
+             vec!["id", "qualname", "scopeid", "value"],
+             true,
+             true)
+        }
+        Variantttttttttttttttttttttttt => {
+            ("variant",
+             vec!["id", "name", "qualname", "type", "value", "scopeid"],
+             true,
+             true)
+        }
+    };
+
+    match x {
+        y => {
+            // Block with comment. Preserve me.
+        }
+        z => {
+            stmt();
+        }
+    }
+}
+
+fn matches() {
+    match 1 {
+        -1 => 10,
+        1 => 1, // foo
+        2 => 2,
+        // bar
+        3 => 3,
+        _ => 0, // baz
+    }
+}
+
+fn issue339() {
+    match a {
+        b => {}
+        c => {}
+        d => {}
+        e => {}
+        // collapsing here is safe
+        ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff => {}
+        // collapsing here exceeds line length
+        ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffg => {
+        }
+        h => {
+            // comment above block
+        }
+        i => {} // comment below block
+        j => {
+            // comment inside block
+        }
+        j2 => {
+            // comments inside...
+        } // ... and after
+        // TODO uncomment when vertical whitespace is handled better
+        // k => {
+        //
+        //     // comment with WS above
+        // }
+        // l => {
+        //     // comment with ws below
+        //
+        // }
+        m => {}
+        n => {}
+        o => {}
+        p => {
+            // Dont collapse me
+        }
+        q => {}
+        r => {}
+        s => 0, // s comment
+        // t comment
+        t => 1,
+        u => 2,
+        // TODO uncomment when block-support exists
+        // v => {
+        // } /* funky block
+        //    * comment */
+        // final comment
+    }
+}
+
+fn issue355() {
+    match mac {
+        a => println!("a", b),
+        b => vec![1, 2],
+        c => vec!(3; 4),
+        d => println!("a", b),
+        e => vec![1, 2],
+        f => vec!(3; 4),
+        h => println!("a", b), // h comment
+        i => vec![1, 2], // i comment
+        j => vec!(3; 4), // j comment
+        // k comment
+        k => println!("a", b),
+        // l comment
+        l => vec![1, 2],
+        // m comment
+        m => vec!(3; 4),
+        // Rewrite splits macro
+        nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn => {
+            println!("a", b)
+        }
+        // Rewrite splits macro
+        oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo => {
+            vec![1, 2]
+        }
+        // Macro support fails to recognise this macro as splitable
+        // We push the whole expr to a new line, TODO split this macro as well
+        pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp => {
+            vec!(3; 4)
+        }
+        // q, r and s: Rewrite splits match arm
+        qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq => {
+            println!("a", b)
+        }
+        rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr => {
+            vec![1, 2]
+        }
+        ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss => {
+            vec!(3; 4)
+        }
+        // Funky bracketing styles
+        t => println!{"a", b},
+        u => vec![1, 2],
+        v => vec!{3; 4},
+        w => println!["a", b],
+        x => vec![1, 2],
+        y => vec![3; 4],
+        // Brackets with comments
+        tc => println!{"a", b}, // comment
+        uc => vec![1, 2], // comment
+        vc => vec!{3; 4}, // comment
+        wc => println!["a", b], // comment
+        xc => vec![1, 2], // comment
+        yc => vec![3; 4], // comment
+        yd => {
+            looooooooooooooooooooooooooooooooooooooooooooooooooooooooong_func(aaaaaaaaaa,
+                                                                              bbbbbbbbbb,
+                                                                              cccccccccc,
+                                                                              dddddddddd)
+        }
+    }
+}
+
+fn issue280() {
+    {
+        match x {
+            CompressionMode::DiscardNewline | CompressionMode::CompressWhitespaceNewline => {
+                ch == '\n'
+            }
+            ast::ItemConst(ref typ, ref expr) => {
+                self.process_static_or_const_item(item, &typ, &expr)
+            }
+        }
+    }
+}
+
+fn issue383() {
+    match resolution.last_private {
+        LastImport{..} => false,
+        _ => true,
+    };
+}
+
+fn issue507() {
+    match 1 {
+        1 => unsafe { std::intrinsics::abort() },
+        _ => (),
+    }
+}
+
+fn issue508() {
+    match s.type_id() {
+        Some(NodeTypeId::Element(ElementTypeId::HTMLElement(
+                    HTMLElementTypeId::HTMLCanvasElement))) => true,
+        Some(NodeTypeId::Element(ElementTypeId::HTMLElement(
+                        HTMLElementTypeId::HTMLObjectElement))) => s.has_object_data(),
+        Some(NodeTypeId::Element(_)) => false,
+    }
+}
+
+fn issue496() {
+    {
+        {
+            {
+                match def {
+                    def::DefConst(def_id) | def::DefAssociatedConst(def_id) => {
+                        match const_eval::lookup_const_by_id(cx.tcx, def_id, Some(self.pat.id)) {
+                            Some(const_expr) => x,
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+fn issue494() {
+    {
+        match stmt.node {
+            hir::StmtExpr(ref expr, id) | hir::StmtSemi(ref expr, id) => {
+                result.push(StmtRef::Mirror(Box::new(Stmt {
+                    span: stmt.span,
+                    kind: StmtKind::Expr {
+                        scope: cx.tcx.region_maps.node_extent(id),
+                        expr: expr.to_ref(),
+                    },
+                })))
+            }
+        }
     }
 }