David Tolnay | 055a704 | 2016-10-02 19:23:54 -0700 | [diff] [blame] | 1 | fn closure() { |
David Tolnay | 89e0567 | 2016-10-02 14:39:42 -0700 | [diff] [blame] | 2 | ( |
| 3 | || (), |
| 4 | |_| (), |
| 5 | || -> () { () }, |
| 6 | |a| a, |
| 7 | |a, b| a + b, |
| 8 | |a: u8, b: u8| a + b, |
| 9 | |a, b| -> u8 { a + b }, |
David Tolnay | fbb7323 | 2016-10-03 01:00:06 -0700 | [diff] [blame] | 10 | |(a, b): (u8, u8)| a + b, |
| 11 | |(.., b): (u8, u8)| a + b, |
| 12 | |(a, ..): (u8, u8)| a + b, |
| 13 | |(a, .., b): (u8, u8)| a + b, |
David Tolnay | 89e0567 | 2016-10-02 14:39:42 -0700 | [diff] [blame] | 14 | move |a, b| a + b, |
| 15 | ) |
David Tolnay | 4260229 | 2016-10-01 22:25:45 -0700 | [diff] [blame] | 16 | } |
David Tolnay | 9636c05 | 2016-10-02 17:11:17 -0700 | [diff] [blame] | 17 | |
| 18 | fn ascript() { |
| 19 | ( |
| 20 | G::<u8>::f::<S>(), |
| 21 | <G<u8> as m::Trait<u8>>::Assoc::f::<S>(), |
| 22 | ) |
| 23 | } |
David Tolnay | 3c2467c | 2016-10-02 17:55:08 -0700 | [diff] [blame] | 24 | |
| 25 | fn conditional() { |
| 26 | if a == b { |
| 27 | 0 |
| 28 | } else if a > b { |
| 29 | 1 |
| 30 | } else { |
| 31 | -1 |
David Tolnay | 29f9ce1 | 2016-10-02 20:58:40 -0700 | [diff] [blame] | 32 | }; |
| 33 | |
| 34 | if let a = b { |
| 35 | 0 |
| 36 | } else if c { |
| 37 | 1 |
| 38 | } else if let d = e { |
| 39 | -1 |
| 40 | }; |
David Tolnay | 3c2467c | 2016-10-02 17:55:08 -0700 | [diff] [blame] | 41 | } |
David Tolnay | 191e058 | 2016-10-02 18:31:09 -0700 | [diff] [blame] | 42 | |
David Tolnay | bb6feae | 2016-10-02 21:25:20 -0700 | [diff] [blame] | 43 | fn looping() { |
| 44 | loop { |
| 45 | print(a); |
David Tolnay | cfe5502 | 2016-10-02 22:02:27 -0700 | [diff] [blame] | 46 | } |
David Tolnay | bb6feae | 2016-10-02 21:25:20 -0700 | [diff] [blame] | 47 | |
| 48 | while true { |
| 49 | print(a); |
David Tolnay | cfe5502 | 2016-10-02 22:02:27 -0700 | [diff] [blame] | 50 | } |
David Tolnay | bb6feae | 2016-10-02 21:25:20 -0700 | [diff] [blame] | 51 | |
| 52 | while let a = true { |
| 53 | print(a); |
David Tolnay | cfe5502 | 2016-10-02 22:02:27 -0700 | [diff] [blame] | 54 | } |
David Tolnay | bb6feae | 2016-10-02 21:25:20 -0700 | [diff] [blame] | 55 | |
| 56 | for a in b { |
| 57 | print(a); |
David Tolnay | cfe5502 | 2016-10-02 22:02:27 -0700 | [diff] [blame] | 58 | } |
David Tolnay | bb6feae | 2016-10-02 21:25:20 -0700 | [diff] [blame] | 59 | } |
| 60 | |
David Tolnay | 191e058 | 2016-10-02 18:31:09 -0700 | [diff] [blame] | 61 | fn item() { |
| 62 | struct S; |
| 63 | |
| 64 | let a = 1; |
| 65 | let a: u8 = 1; |
| 66 | let mut a = 1; |
| 67 | } |
David Tolnay | 055a704 | 2016-10-02 19:23:54 -0700 | [diff] [blame] | 68 | |
| 69 | fn expr() { |
| 70 | fallible()?; |
| 71 | |
| 72 | [repeat; 1 + 1]; |
| 73 | |
| 74 | A::B {}; |
| 75 | A::B { a: () }; |
| 76 | A::B { .. c }; |
| 77 | A::B { a: (), b: (), .. c }; |
| 78 | } |
David Tolnay | 8b308c2 | 2016-10-03 01:24:10 -0700 | [diff] [blame] | 79 | |
| 80 | fn pattern() { |
| 81 | match x { |
David Tolnay | aa61094 | 2016-10-03 22:22:49 -0700 | [diff] [blame] | 82 | _ => {} |
| 83 | box a => {} |
David Tolnay | 8b308c2 | 2016-10-03 01:24:10 -0700 | [diff] [blame] | 84 | 0...31 => {} |
David Tolnay | aa61094 | 2016-10-03 22:22:49 -0700 | [diff] [blame] | 85 | A::B(a, .., b) => {} |
David Tolnay | 8d9e81a | 2016-10-03 22:36:32 -0700 | [diff] [blame] | 86 | A::B { ref a, b: &c } => {} |
David Tolnay | aa61094 | 2016-10-03 22:22:49 -0700 | [diff] [blame] | 87 | a => {} |
| 88 | ref a => {} |
| 89 | mut a => {} |
| 90 | ref mut a => {} |
David Tolnay | 8b308c2 | 2016-10-03 01:24:10 -0700 | [diff] [blame] | 91 | A::B => {} |
David Tolnay | aa61094 | 2016-10-03 22:22:49 -0700 | [diff] [blame] | 92 | (a, .., b) => {} |
David Tolnay | ffdb97f | 2016-10-03 01:28:33 -0700 | [diff] [blame] | 93 | &inner => {} |
David Tolnay | aa61094 | 2016-10-03 22:22:49 -0700 | [diff] [blame] | 94 | "a" => {} |
| 95 | mac!() => {} |
David Tolnay | 8b308c2 | 2016-10-03 01:24:10 -0700 | [diff] [blame] | 96 | } |
| 97 | } |