]> git.lizzy.rs Git - rust.git/blob - src/test/run-pass/empty-struct-with-braces.rs
Auto merge of #28465 - apasel422:tidy, r=alexcrichton
[rust.git] / src / test / run-pass / empty-struct-with-braces.rs
1 // Copyright 2015 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 // Empty struct defined with braces add names into type namespace
12 // Empty struct defined without braces add names into both type and value namespaces
13
14 #![feature(braced_empty_structs)]
15
16 struct Empty1 {}
17 struct Empty2;
18 struct Empty3 {}
19 const Empty3: Empty3 = Empty3 {};
20
21 fn main() {
22     let e1: Empty1 = Empty1 {};
23     let e2: Empty2 = Empty2 {};
24     let e2: Empty2 = Empty2;
25     let e3: Empty3 = Empty3 {};
26     let e3: Empty3 = Empty3;
27
28     match e1 {
29         Empty1 {} => ()
30     }
31     match e2 {
32         Empty2 {} => ()
33     }
34     match e2 {
35         Empty2 => ()
36     }
37     match e3 {
38         Empty3 {} => ()
39     }
40     match e3 {
41         Empty3 => ()
42     }
43     match e1 {
44         Empty1 { .. } => ()
45     }
46     match e2 {
47         Empty2 { .. } => ()
48     }
49     match e3 {
50         Empty3 { .. } => ()
51     }
52
53     let e11 = Empty1 { ..e1 };
54     let e22 = Empty2 { ..e2 };
55     let e33 = Empty3 { ..e3 };
56 }