diff options
| author | Ariel Ben-Yehuda <arielb1@mail.tau.ac.il> | 2015-08-18 00:17:02 +0300 |
|---|---|---|
| committer | Ariel Ben-Yehuda <arielb1@mail.tau.ac.il> | 2015-08-18 00:25:29 +0300 |
| commit | 13809ffff7022a24b33d93f63a2cbdb6ecd20805 (patch) | |
| tree | 4931113b5af4ffd99245a9945a044b5b457989de | |
| parent | 8aeaaac6545565345f4df7d24d6421f93f28d698 (diff) | |
don't iterate over all impls when none match
before: 573.01user 4.04system 7:33.86elapsed 127%CPU (0avgtext+0avgdata 1141656maxresident)k after: 567.03user 4.00system 7:28.23elapsed 127%CPU (0avgtext+0avgdata 1133112maxresident)k an additional 1% improvement
| -rw-r--r-- | src/librustc/middle/ty.rs | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index f99760b6210..69b83b24ffd 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -3222,13 +3222,12 @@ impl<'tcx> TraitDef<'tcx> { for &impl_def_id in impls { f(impl_def_id); } - return; // we don't need to process the other non-blanket impls } - } - - for v in self.nonblanket_impls.borrow().values() { - for &impl_def_id in v { - f(impl_def_id); + } else { + for v in self.nonblanket_impls.borrow().values() { + for &impl_def_id in v { + f(impl_def_id); + } } } } |
