From 6dc452335a410e139220c4ecadbbda9dd15fe8e2 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 1 Apr 2011 13:02:44 -0700 Subject: rustc: Get tag variants from the crate metadata --- src/comp/middle/trans.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/comp/middle/trans.rs') diff --git a/src/comp/middle/trans.rs b/src/comp/middle/trans.rs index 263ac940..7859393e 100644 --- a/src/comp/middle/trans.rs +++ b/src/comp/middle/trans.rs @@ -1911,7 +1911,10 @@ type variant_info = rec(vec[@ty.t] args, @ty.t ctor_ty, ast.def_id id); // Returns information about the variants in a tag. fn tag_variants(@crate_ctxt cx, ast.def_id id) -> vec[variant_info] { - // FIXME: This doesn't work for external variants. + if (cx.sess.get_targ_crate_num() != id._0) { + ret creader.get_tag_variants(cx.sess, id); + } + check (cx.items.contains_key(id)); alt (cx.items.get(id).node) { case (ast.item_tag(_, ?variants, _, _, _)) { -- cgit v1.2.3