From 9ab9bd9cc2dc97c2acc26849dd24b8989b76ea32 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Fri, 22 Apr 2011 10:19:22 -0700 Subject: rustc: Improve the efficiency of lookup_item_type() slightly --- src/comp/middle/ty.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/comp/middle/ty.rs b/src/comp/middle/ty.rs index 5829c0be..59de7768 100644 --- a/src/comp/middle/ty.rs +++ b/src/comp/middle/ty.rs @@ -2484,17 +2484,17 @@ fn lookup_item_type(session.session sess, if (did._0 == sess.get_targ_crate_num()) { // The item is in this crate. The caller should have added it to the // type cache already; we simply return it. - check (cache.contains_key(did)); ret cache.get(did); } - if (cache.contains_key(did)) { - ret cache.get(did); + alt (cache.find(did)) { + case (some[ty_param_count_and_ty](?tpt)) { ret tpt; } + case (none[ty_param_count_and_ty]) { + auto tyt = creader.get_type(sess, tystore, did); + cache.insert(did, tyt); + ret tyt; + } } - - auto tyt = creader.get_type(sess, tystore, did); - cache.insert(did, tyt); - ret tyt; } -- cgit v1.2.3