From ab8d200fb0d7e3dbd9fad4a87201908658dfc700 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Wed, 30 Mar 2011 18:28:33 -0700 Subject: rustc: Read 'y' tags from external crates --- src/comp/front/creader.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/comp/front') diff --git a/src/comp/front/creader.rs b/src/comp/front/creader.rs index ea6581e0..4e7c2193 100644 --- a/src/comp/front/creader.rs +++ b/src/comp/front/creader.rs @@ -548,6 +548,7 @@ fn kind_has_type_params(u8 kind_ch) -> bool { // FIXME: It'd be great if we had u8 char literals. if (kind_ch == ('c' as u8)) { ret false; } else if (kind_ch == ('f' as u8)) { ret true; } + else if (kind_ch == ('y' as u8)) { ret true; } else if (kind_ch == ('o' as u8)) { ret true; } else if (kind_ch == ('t' as u8)) { ret true; } else if (kind_ch == ('m' as u8)) { ret false; } @@ -582,12 +583,15 @@ fn lookup_def(session.session sess, int cnum, vec[ast.ident] path) // FIXME: It'd be great if we had u8 char literals. auto def; - if (kind_ch == ('c' as u8)) { def = ast.def_const(did); } - else if (kind_ch == ('f' as u8)) { def = ast.def_fn(did); } - else if (kind_ch == ('o' as u8)) { def = ast.def_obj(did); } - else if (kind_ch == ('t' as u8)) { def = ast.def_ty(did); } - else if (kind_ch == ('m' as u8)) { def = ast.def_mod(did); } - else if (kind_ch == ('n' as u8)) { def = ast.def_native_mod(did); } + if (kind_ch == ('c' as u8)) { def = ast.def_const(did); } + else if (kind_ch == ('f' as u8)) { def = ast.def_fn(did); } + else if (kind_ch == ('y' as u8)) { def = ast.def_ty(did); } + else if (kind_ch == ('o' as u8)) { def = ast.def_obj(did); } + else if (kind_ch == ('t' as u8)) { + // We treat references to tags as references to types. + def = ast.def_ty(did); + } else if (kind_ch == ('m' as u8)) { def = ast.def_mod(did); } + else if (kind_ch == ('n' as u8)) { def = ast.def_native_mod(did); } else if (kind_ch == ('v' as u8)) { auto tid = get_variant_tag_id(ebml_r); tid = tup(cnum, tid._1); -- cgit v1.2.3