From 08b49a5d8fe975bcd8a0526526eb9692f3f3be4c Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sun, 26 Jun 2011 18:02:47 -0700 Subject: [PATCH] Reformulate an assert in ty::tag_variants This was doing a redundant hashmap lookup. Removing the redundancy trims 5% (2.8s) off rustc's compile time --- src/comp/middle/ty.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/comp/middle/ty.rs b/src/comp/middle/ty.rs index 69a59b421050..f9397a05adf7 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, _)) {