summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-09-04 18:28:22 -0700
committerPatrick Walton <pcwalton@mimiga.net>2012-09-04 18:30:27 -0700
commitfba673b26bc029ef234f56e177559fd0b9e48507 (patch)
tree2a21c1ea78a14b76233af8ec4da4852f21bdd4a3 /src/libsyntax
parenta618d0d7ce913e5c7f1393561149ada6f7c32ff3 (diff)
downloadrust-fba673b26bc029ef234f56e177559fd0b9e48507.tar.gz
rust-fba673b26bc029ef234f56e177559fd0b9e48507.zip
rustc: Implement private methods.
Doesn't work cross-crate yet.
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/ast.rs3
-rw-r--r--src/libsyntax/parse/parser.rs3
2 files changed, 3 insertions, 3 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs
index 083f67947e9..ceed0718f6b 100644
--- a/src/libsyntax/ast.rs
+++ b/src/libsyntax/ast.rs
@@ -1041,8 +1041,7 @@ type method = {ident: ident, attrs: ~[attribute],
                tps: ~[ty_param], self_ty: self_ty,
                purity: purity, decl: fn_decl, body: blk,
                id: node_id, span: span, self_id: node_id,
-               vis: visibility};  // always public, unless it's a
-                                  // class method
+               vis: visibility};
 
 #[auto_serialize]
 type _mod = {view_items: ~[@view_item], items: ~[@item]};
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index eca6063df39..367fb9a1bde 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -2533,7 +2533,8 @@ struct parser {
         let mut meths = ~[];
         self.expect(token::LBRACE);
         while !self.eat(token::RBRACE) {
-            vec::push(meths, self.parse_method(public));
+            let vis = self.parse_visibility();
+            vec::push(meths, self.parse_method(vis));
         }
         (ident, item_impl(tps, traits, ty, meths), None)
     }