]> git.lizzy.rs Git - rust.git/blob - src/test/compile-fail/match-vec-mismatch.rs
Rollup merge of #48365 - Centril:docs/document-refcell-panics, r=frewsxcv
[rust.git] / src / test / compile-fail / match-vec-mismatch.rs
1 // Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 #![feature(slice_patterns)]
12
13 fn main() {
14     match "foo".to_string() {
15         ['f', 'o', ..] => {}
16         //~^ ERROR expected an array or slice, found `std::string::String`
17         _ => { }
18     };
19
20     // Note that this one works with default binding modes.
21     match &[0, 1, 2] {
22         [..] => {} //~ ERROR non-reference pattern used to match a reference
23     };
24
25     match &[0, 1, 2] {
26         &[..] => {} // ok
27     };
28
29     match [0, 1, 2] {
30         [0] => {}, //~ ERROR pattern requires
31
32         [0, 1, x..] => {
33             let a: [_; 1] = x;
34         }
35         [0, 1, 2, 3, x..] => {} //~ ERROR pattern requires
36     };
37
38     match does_not_exist { //~ ERROR cannot find value `does_not_exist` in this scope
39         [] => {}
40     };
41 }
42
43 fn another_fn_to_avoid_suppression() {
44     match Default::default()
45     {
46         [] => {}  //~ ERROR type annotations needed
47     };
48 }