about summary refs log tree commit diff
path: root/src/comp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-10-18 19:39:09 -0700
committerBrian Anderson <banderson@mozilla.com>2011-10-20 18:23:48 -0700
commitf324704c0a010a2ba89bec67d89eb6eccfa4e412 (patch)
tree1f281bf03c6229d9238394d4fa4451f8124683d1 /src/comp
parent391e12124b4ee96849b8b5959c2cab824400a384 (diff)
downloadrust-f324704c0a010a2ba89bec67d89eb6eccfa4e412.tar.gz
rust-f324704c0a010a2ba89bec67d89eb6eccfa4e412.zip
Parse obj methods as proto_bare
I don't know if this is the right thing to do, but it works
and it lets 'fn' always mean proto_bare
Diffstat (limited to 'src/comp')
-rw-r--r--src/comp/metadata/tydecode.rs2
-rw-r--r--src/comp/syntax/parse/parser.rs18
2 files changed, 9 insertions, 11 deletions
diff --git a/src/comp/metadata/tydecode.rs b/src/comp/metadata/tydecode.rs
index 6b9d3e96bf5..2e6a83c153d 100644
--- a/src/comp/metadata/tydecode.rs
+++ b/src/comp/metadata/tydecode.rs
@@ -281,7 +281,7 @@ fn parse_ty(st: @pstate, sd: str_def) -> ty::t {
             let proto;
             alt next(st) as char {
               'W' { proto = ast::proto_iter; }
-              'F' { proto = ast::proto_fn; }
+              'f' { proto = ast::proto_bare; }
             }
             let name = "";
             while peek(st) as char != '[' {
diff --git a/src/comp/syntax/parse/parser.rs b/src/comp/syntax/parse/parser.rs
index 01770aa8a60..e661d24873b 100644
--- a/src/comp/syntax/parse/parser.rs
+++ b/src/comp/syntax/parse/parser.rs
@@ -294,16 +294,6 @@ fn parse_ty_fn(proto: ast::proto, p: parser) -> ast::ty_ {
     ret ast::ty_fn(proto, inputs.node, ret_ty, ret_style, constrs);
 }
 
-fn parse_method_proto(p: parser) -> ast::proto {
-    if eat_word(p, "iter") {
-        ret ast::proto_iter;
-    } else if eat_word(p, "fn") {
-        ret ast::proto_fn;
-    } else if eat_word(p, "block") {
-        ret ast::proto_block;
-    } else { unexpected(p, p.peek()); }
-}
-
 fn parse_ty_obj(p: parser, &hi: uint) -> ast::ty_ {
     fn parse_method_sig(p: parser) -> ast::ty_method {
         let flo = p.get_lo_pos();
@@ -2179,6 +2169,14 @@ fn parse_fn_anon_proto(p: parser) -> ast::proto {
     }
 }
 
+fn parse_method_proto(p: parser) -> ast::proto {
+    if eat_word(p, "iter") {
+        ret ast::proto_iter;
+    } else if eat_word(p, "fn") {
+        ret ast::proto_bare;
+    } else { unexpected(p, p.peek()); }
+}
+
 fn parse_item(p: parser, attrs: [ast::attribute]) -> option::t<@ast::item> {
     if eat_word(p, "const") {
         ret some(parse_item_const(p, attrs));