From adf2d6193a58f2bf4f98a8e0276e836f7df325e8 Mon Sep 17 00:00:00 2001 From: DaniPopes <57450786+DaniPopes@users.noreply.github.com> Date: Tue, 20 Feb 2024 09:27:23 +0200 Subject: [PATCH] chore: add tracing to gas reports (#7185) --- crates/forge/src/gas_report.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/crates/forge/src/gas_report.rs b/crates/forge/src/gas_report.rs index 9d416e36ff1c2..afe41f76dfa51 100644 --- a/crates/forge/src/gas_report.rs +++ b/crates/forge/src/gas_report.rs @@ -109,25 +109,27 @@ impl GasReport { /// Finalizes the gas report by calculating the min, max, mean, and median for each function. #[must_use] pub fn finalize(mut self) -> Self { - self.contracts.iter_mut().for_each(|(_, contract)| { - contract.functions.iter_mut().for_each(|(_, sigs)| { - sigs.iter_mut().for_each(|(_, func)| { + trace!("finalizing gas report"); + for contract in self.contracts.values_mut() { + for sigs in contract.functions.values_mut() { + for func in sigs.values_mut() { func.calls.sort_unstable(); func.min = func.calls.first().copied().unwrap_or_default(); func.max = func.calls.last().copied().unwrap_or_default(); func.mean = calc::mean(&func.calls); - func.median = calc::median_sorted(func.calls.as_slice()); - }); - }); - }); + func.median = calc::median_sorted(&func.calls); + } + } + } self } } impl Display for GasReport { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> { - for (name, contract) in self.contracts.iter() { + for (name, contract) in &self.contracts { if contract.functions.is_empty() { + trace!(name, "gas report contract without functions"); continue }