From 2c4cffde3bdc36d9634ebf24e512f19aa6fe1ccb Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Tue, 7 Apr 2020 16:50:26 -0700 Subject: [PATCH] Reduce callsites in Chain::last() --- src/libcore/iter/adapters/chain.rs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/libcore/iter/adapters/chain.rs b/src/libcore/iter/adapters/chain.rs index 0100e62fae6..aadecdfbb65 100644 --- a/src/libcore/iter/adapters/chain.rs +++ b/src/libcore/iter/adapters/chain.rs @@ -130,17 +130,16 @@ fn find

(&mut self, mut predicate: P) -> Option #[inline] fn last(self) -> Option { - match self { - Chain { a: Some(a), b: Some(b) } => { - // Must exhaust a before b. - let a_last = a.last(); - let b_last = b.last(); - b_last.or(a_last) - } - Chain { a: Some(a), b: None } => a.last(), - Chain { a: None, b: Some(b) } => b.last(), - Chain { a: None, b: None } => None, - } + // Must exhaust a before b. + let a_last = match self.a { + Some(a) => a.last(), + None => None, + }; + let b_last = match self.b { + Some(b) => b.last(), + None => None, + }; + b_last.or(a_last) } #[inline]