about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/comp/middle/ty.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/comp/middle/ty.rs b/src/comp/middle/ty.rs
index 69a59b42105..f9397a05adf 100644
--- a/src/comp/middle/ty.rs
+++ b/src/comp/middle/ty.rs
@@ -2702,8 +2702,13 @@ fn tag_variants(&ctxt cx, &ast::def_id id) -> vec[variant_info] {
     if (cx.sess.get_targ_crate_num() != id._0) {
         ret creader::get_tag_variants(cx, id);
     }
-    assert (cx.items.contains_key(id._1));
-    alt (cx.items.get(id._1)) {
+    auto item = alt (cx.items.find(id._1)) {
+        case (some(?i)) { i }
+        case (none) {
+            cx.sess.bug("expected to find cached node_item")
+        }
+    };
+    alt (item) {
         case (ast_map::node_item(?item)) {
             alt (item.node) {
                 case (ast::item_tag(?variants, _)) {