]> git.proxmox.com Git - rustc.git/blame - src/test/run-pass/empty-struct-braces.rs
Imported Upstream version 1.8.0+dfsg1
[rustc.git] / src / test / run-pass / empty-struct-braces.rs
CommitLineData
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
16extern crate empty_struct;
17use empty_struct::*;
18
b039eaaf
SL
19struct Empty1 {}
20struct Empty2;
21struct Empty3 {}
22const Empty3: Empty3 = Empty3 {};
23
24enum E {
25 Empty4 {},
26 Empty5,
27}
28
9cc50fc6 29fn 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
91fn 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
141fn main() {
142 local();
143 xcrate();
144}