Skip to content

Commit 0a852e0

Browse files
committed
rustc: Make "priv" work on enum variants
1 parent 9097410 commit 0a852e0

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

src/rustc/middle/resolve.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,23 +1091,24 @@ struct Resolver {
10911091
let atom = variant.node.name;
10921092
let (child, _) = self.add_child(atom, parent, ~[ValueNS],
10931093
variant.span);
1094+
let privacy = self.visibility_to_privacy(variant.node.vis);
10941095

10951096
match variant.node.kind {
10961097
tuple_variant_kind(_) => {
1097-
(*child).define_value(Public,
1098+
(*child).define_value(privacy,
10981099
def_variant(item_id,
10991100
local_def(variant.node.id)),
11001101
variant.span);
11011102
}
11021103
struct_variant_kind(_) => {
1103-
(*child).define_type(Public,
1104+
(*child).define_type(privacy,
11041105
def_variant(item_id,
11051106
local_def(variant.node.id)),
11061107
variant.span);
11071108
self.structs.insert(local_def(variant.node.id), false);
11081109
}
11091110
enum_variant_kind(enum_definition) => {
1110-
(*child).define_type(Public,
1111+
(*child).define_type(privacy,
11111112
def_ty(local_def(variant.node.id)),
11121113
variant.span);
11131114
for enum_definition.variants.each |variant| {
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
mod a {
2+
enum Waffle {
3+
Belgian,
4+
Brussels,
5+
priv Liege
6+
}
7+
}
8+
9+
fn main() {
10+
let x = a::Liege; //~ ERROR unresolved name
11+
}

0 commit comments

Comments
 (0)