]>
Commit | Line | Data |
---|---|---|
b039eaaf SL |
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 | ||
9cc50fc6 SL |
14 | // aux-build:empty-struct.rs |
15 | ||
9cc50fc6 SL |
16 | extern crate empty_struct; |
17 | use empty_struct::*; | |
18 | ||
b039eaaf SL |
19 | struct Empty1 {} |
20 | struct Empty2; | |
21 | struct Empty3 {} | |
22 | const Empty3: Empty3 = Empty3 {}; | |
23 | ||
24 | enum E { | |
25 | Empty4 {}, | |
26 | Empty5, | |
27 | } | |
28 | ||
9cc50fc6 | 29 | fn local() { |
b039eaaf SL |
30 | let e1: Empty1 = Empty1 {}; |
31 | let e2: Empty2 = Empty2 {}; | |
32 | let e2: Empty2 = Empty2; | |
33 | let e3: Empty3 = Empty3 {}; | |
34 | let e3: Empty3 = Empty3; | |
35 | let e4: E = E::Empty4 {}; | |
92a42be0 | 36 | let e5: E = E::Empty5 {}; |
b039eaaf SL |
37 | let e5: E = E::Empty5; |
38 | ||
39 | match e1 { | |
40 | Empty1 {} => {} | |
41 | } | |
42 | match e2 { | |
43 | Empty2 {} => {} | |
44 | } | |
45 | match e3 { | |
46 | Empty3 {} => {} | |
47 | } | |
48 | match e4 { | |
49 | E::Empty4 {} => {} | |
50 | _ => {} | |
51 | } | |
92a42be0 SL |
52 | match e5 { |
53 | E::Empty5 {} => {} | |
54 | _ => {} | |
55 | } | |
b039eaaf SL |
56 | |
57 | match e1 { | |
58 | Empty1 { .. } => {} | |
59 | } | |
60 | match e2 { | |
61 | Empty2 { .. } => {} | |
62 | } | |
63 | match e3 { | |
64 | Empty3 { .. } => {} | |
65 | } | |
66 | match e4 { | |
67 | E::Empty4 { .. } => {} | |
68 | _ => {} | |
69 | } | |
92a42be0 SL |
70 | match e5 { |
71 | E::Empty5 { .. } => {} | |
72 | _ => {} | |
73 | } | |
b039eaaf SL |
74 | |
75 | match e2 { | |
76 | Empty2 => {} | |
77 | } | |
78 | match e3 { | |
79 | Empty3 => {} | |
80 | } | |
81 | match e5 { | |
82 | E::Empty5 => {} | |
83 | _ => {} | |
84 | } | |
85 | ||
86 | let e11: Empty1 = Empty1 { ..e1 }; | |
87 | let e22: Empty2 = Empty2 { ..e2 }; | |
88 | let e33: Empty3 = Empty3 { ..e3 }; | |
89 | } | |
9cc50fc6 SL |
90 | |
91 | fn xcrate() { | |
92 | let e1: XEmpty1 = XEmpty1 {}; | |
93 | let e2: XEmpty2 = XEmpty2 {}; | |
94 | let e2: XEmpty2 = XEmpty2; | |
95 | let e3: XE = XE::XEmpty3 {}; | |
7453a54e | 96 | let e4: XE = XE::XEmpty4 {}; |
9cc50fc6 SL |
97 | let e4: XE = XE::XEmpty4; |
98 | ||
99 | match e1 { | |
100 | XEmpty1 {} => {} | |
101 | } | |
102 | match e2 { | |
103 | XEmpty2 {} => {} | |
104 | } | |
105 | match e3 { | |
106 | XE::XEmpty3 {} => {} | |
107 | _ => {} | |
108 | } | |
7453a54e SL |
109 | match e4 { |
110 | XE::XEmpty4 {} => {} | |
111 | _ => {} | |
112 | } | |
9cc50fc6 SL |
113 | |
114 | match e1 { | |
115 | XEmpty1 { .. } => {} | |
116 | } | |
117 | match e2 { | |
118 | XEmpty2 { .. } => {} | |
119 | } | |
120 | match e3 { | |
121 | XE::XEmpty3 { .. } => {} | |
122 | _ => {} | |
123 | } | |
7453a54e SL |
124 | match e4 { |
125 | XE::XEmpty4 { .. } => {} | |
126 | _ => {} | |
127 | } | |
9cc50fc6 SL |
128 | |
129 | match e2 { | |
130 | XEmpty2 => {} | |
131 | } | |
7453a54e SL |
132 | match e4 { |
133 | XE::XEmpty4 => {} | |
134 | _ => {} | |
135 | } | |
9cc50fc6 SL |
136 | |
137 | let e11: XEmpty1 = XEmpty1 { ..e1 }; | |
138 | let e22: XEmpty2 = XEmpty2 { ..e2 }; | |
139 | } | |
140 | ||
141 | fn main() { | |
142 | local(); | |
143 | xcrate(); | |
144 | } |