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.
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.
11 // aux-build:privacy_tuple_struct.rs
13 extern crate privacy_tuple_struct
as other
;
18 pub struct C(pub isize, isize);
19 pub struct D(pub isize);
29 match a { A(()) => {}
}
30 match a { A(_) => {}
}
34 match b { B(_) => {}
}
35 match b { B(_b) => {}
}
36 match b { B(1) => {}
B(_
) => {}
}
42 match c { C(_, _) => {}
}
43 match c { C(_a, _) => {}
}
44 match c { C(_, _b) => {}
}
45 match c { C(_a, _b) => {}
}
49 match d { D(_) => {}
}
50 match d { D(_d) => {}
}
51 match d { D(1) => {}
D(_
) => {}
}
61 let a
= a
::A(()); //~ ERROR: cannot invoke tuple struct constructor
62 let b
= a
::B(2); //~ ERROR: cannot invoke tuple struct constructor
63 let c
= a
::C(2, 3); //~ ERROR: cannot invoke tuple struct constructor
66 let a
::A(()) = a
; //~ ERROR: field `0` of struct `a::A` is private
68 match a { a::A(()) => {}
} //~ ERROR: field `0` of struct `a::A` is private
69 match a { a::A(_) => {}
}
72 let a
::B(_b
) = b
; //~ ERROR: field `0` of struct `a::B` is private
73 match b { a::B(_) => {}
}
74 match b { a::B(_b) => {}
} //~ ERROR: field `0` of struct `a::B` is private
75 match b { a::B(1) => {} a
::B(_
) => {}
} //~ ERROR: field `0` of struct `a::B` is private
79 let a
::C(_
, _b
) = c
; //~ ERROR: field `1` of struct `a::C` is private
80 let a
::C(_a
, _b
) = c
; //~ ERROR: field `1` of struct `a::C` is private
81 match c { a::C(_, _) => {}
}
82 match c { a::C(_a, _) => {}
}
83 match c { a::C(_, _b) => {}
} //~ ERROR: field `1` of struct `a::C` is private
84 match c { a::C(_a, _b) => {}
} //~ ERROR: field `1` of struct `a::C` is private
88 match d { a::D(_) => {}
}
89 match d { a::D(_d) => {}
}
90 match d { a::D(1) => {} a
::D(_
) => {}
}
92 let a2
= a
::A
; //~ ERROR: cannot invoke tuple struct constructor
93 let b2
= a
::B
; //~ ERROR: cannot invoke tuple struct constructor
94 let c2
= a
::C
; //~ ERROR: cannot invoke tuple struct constructor
99 let a
= other
::A(()); //~ ERROR: cannot invoke tuple struct constructor
100 let b
= other
::B(2); //~ ERROR: cannot invoke tuple struct constructor
101 let c
= other
::C(2, 3); //~ ERROR: cannot invoke tuple struct constructor
104 let other
::A(()) = a
; //~ ERROR: field `0` of struct `other::A` is private
106 match a { other::A(()) => {}
}
107 //~^ ERROR: field `0` of struct `other::A` is private
108 match a { other::A(_) => {}
}
111 let other
::B(_b
) = b
; //~ ERROR: field `0` of struct `other::B` is private
112 match b { other::B(_) => {}
}
113 match b { other::B(_b) => {}
}
114 //~^ ERROR: field `0` of struct `other::B` is private
115 match b { other::B(1) => {} other
::B(_
) => {}
}
116 //~^ ERROR: field `0` of struct `other::B` is private
118 let other
::C(_
, _
) = c
;
119 let other
::C(_a
, _
) = c
;
120 let other
::C(_
, _b
) = c
; //~ ERROR: field `1` of struct `other::C` is private
121 let other
::C(_a
, _b
) = c
; //~ ERROR: field `1` of struct `other::C` is private
122 match c { other::C(_, _) => {}
}
123 match c { other::C(_a, _) => {}
}
124 match c { other::C(_, _b) => {}
}
125 //~^ ERROR: field `1` of struct `other::C` is private
126 match c { other::C(_a, _b) => {}
}
127 //~^ ERROR: field `1` of struct `other::C` is private
130 let other
::D(_d
) = d
;
131 match d { other::D(_) => {}
}
132 match d { other::D(_d) => {}
}
133 match d { other::D(1) => {} other
::D(_
) => {}
}
135 let a2
= other
::A
; //~ ERROR: cannot invoke tuple struct constructor
136 let b2
= other
::B
; //~ ERROR: cannot invoke tuple struct constructor
137 let c2
= other
::C
; //~ ERROR: cannot invoke tuple struct constructor