diff options
| author | Brian Anderson <banderson@mozilla.com> | 2011-06-26 18:02:47 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2011-06-26 18:02:47 -0700 |
| commit | 08b49a5d8fe975bcd8a0526526eb9692f3f3be4c (patch) | |
| tree | 7b8d1a3a5679e1f6a276ccb209e11bff4a20eb6c /src/comp | |
| parent | cfaa0f4b91b27abfb3b4fba4d0bb31a5e3da7c89 (diff) | |
| download | rust-08b49a5d8fe975bcd8a0526526eb9692f3f3be4c.tar.gz rust-08b49a5d8fe975bcd8a0526526eb9692f3f3be4c.zip | |
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
Diffstat (limited to 'src/comp')
| -rw-r--r-- | src/comp/middle/ty.rs | 9 |
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, _)) { |
