]> git.lizzy.rs Git - rust.git/blob - src/test/ui/structs-enums/empty-struct-braces.rs
Rollup merge of #97317 - GuillaumeGomez:gui-settings-text-click, r=jsha
[rust.git] / src / test / ui / structs-enums / empty-struct-braces.rs
1 // run-pass
2 #![allow(unused_variables)]
3 #![allow(non_upper_case_globals)]
4
5 // Empty struct defined with braces add names into type namespace
6 // Empty struct defined without braces add names into both type and value namespaces
7
8 // aux-build:empty-struct.rs
9
10 extern crate empty_struct;
11 use empty_struct::*;
12
13 struct Empty1 {}
14 struct Empty2;
15 struct Empty7();
16
17 #[derive(PartialEq, Eq)]
18 struct Empty3 {}
19
20 const Empty3: Empty3 = Empty3 {};
21
22 enum E {
23     Empty4 {},
24     Empty5,
25     Empty6(),
26 }
27
28 fn local() {
29     let e1: Empty1 = Empty1 {};
30     let e2: Empty2 = Empty2 {};
31     let e2: Empty2 = Empty2;
32     let e3: Empty3 = Empty3 {};
33     let e3: Empty3 = Empty3;
34     let e4: E = E::Empty4 {};
35     let e5: E = E::Empty5 {};
36     let e5: E = E::Empty5;
37     let e6: E = E::Empty6 {};
38     let e6: E = E::Empty6();
39     let ctor6: fn() -> E = E::Empty6;
40     let e7: Empty7 = Empty7 {};
41     let e7: Empty7 = Empty7();
42     let ctor7: fn() -> Empty7 = Empty7;
43
44     match e1 {
45         Empty1 {} => {}
46     }
47     match e2 {
48         Empty2 {} => {}
49     }
50     match e3 {
51         Empty3 {} => {}
52     }
53     match e4 {
54         E::Empty4 {} => {}
55         _ => {}
56     }
57     match e5 {
58         E::Empty5 {} => {}
59         _ => {}
60     }
61     match e6 {
62         E::Empty6 {} => {}
63         _ => {}
64     }
65     match e7 {
66         Empty7 {} => {}
67     }
68
69     match e1 {
70         Empty1 { .. } => {}
71     }
72     match e2 {
73         Empty2 { .. } => {}
74     }
75     match e3 {
76         Empty3 { .. } => {}
77     }
78     match e4 {
79         E::Empty4 { .. } => {}
80         _ => {}
81     }
82     match e5 {
83         E::Empty5 { .. } => {}
84         _ => {}
85     }
86     match e6 {
87         E::Empty6 { .. } => {}
88         _ => {}
89     }
90     match e7 {
91         Empty7 { .. } => {}
92     }
93
94     match e2 {
95         Empty2 => {}
96     }
97     match e3 {
98         Empty3 => {}
99     }
100     match e5 {
101         E::Empty5 => {}
102         _ => {}
103     }
104     match e6 {
105         E::Empty6() => {}
106         _ => {}
107     }
108     match e6 {
109         E::Empty6(..) => {}
110         _ => {}
111     }
112     match e7 {
113         Empty7() => {}
114     }
115     match e7 {
116         Empty7(..) => {}
117     }
118
119     let e11: Empty1 = Empty1 { ..e1 };
120     let e22: Empty2 = Empty2 { ..e2 };
121     let e33: Empty3 = Empty3 { ..e3 };
122     let e77: Empty7 = Empty7 { ..e7 };
123 }
124
125 fn xcrate() {
126     let e1: XEmpty1 = XEmpty1 {};
127     let e2: XEmpty2 = XEmpty2 {};
128     let e2: XEmpty2 = XEmpty2;
129     let e3: XE = XE::XEmpty3 {};
130     let e4: XE = XE::XEmpty4 {};
131     let e4: XE = XE::XEmpty4;
132     let e6: XE = XE::XEmpty6 {};
133     let e6: XE = XE::XEmpty6();
134     let ctor6: fn() -> XE = XE::XEmpty6;
135     let e7: XEmpty7 = XEmpty7 {};
136     let e7: XEmpty7 = XEmpty7();
137     let ctor7: fn() -> XEmpty7 = XEmpty7;
138
139     match e1 {
140         XEmpty1 {} => {}
141     }
142     match e2 {
143         XEmpty2 {} => {}
144     }
145     match e3 {
146         XE::XEmpty3 {} => {}
147         _ => {}
148     }
149     match e4 {
150         XE::XEmpty4 {} => {}
151         _ => {}
152     }
153     match e6 {
154         XE::XEmpty6 {} => {}
155         _ => {}
156     }
157     match e7 {
158         XEmpty7 {} => {}
159     }
160
161     match e1 {
162         XEmpty1 { .. } => {}
163     }
164     match e2 {
165         XEmpty2 { .. } => {}
166     }
167     match e3 {
168         XE::XEmpty3 { .. } => {}
169         _ => {}
170     }
171     match e4 {
172         XE::XEmpty4 { .. } => {}
173         _ => {}
174     }
175     match e6 {
176         XE::XEmpty6 { .. } => {}
177         _ => {}
178     }
179     match e7 {
180         XEmpty7 { .. } => {}
181     }
182
183     match e2 {
184         XEmpty2 => {}
185     }
186     match e4 {
187         XE::XEmpty4 => {}
188         _ => {}
189     }
190     match e6 {
191         XE::XEmpty6() => {}
192         _ => {}
193     }
194     match e6 {
195         XE::XEmpty6(..) => {}
196         _ => {}
197     }
198     match e7 {
199         XEmpty7() => {}
200     }
201     match e7 {
202         XEmpty7(..) => {}
203     }
204
205     let e11: XEmpty1 = XEmpty1 { ..e1 };
206     let e22: XEmpty2 = XEmpty2 { ..e2 };
207     let e77: XEmpty7 = XEmpty7 { ..e7 };
208 }
209
210 fn main() {
211     local();
212     xcrate();
213 }