message: remove a lazy_static
diff: use std::cmp::Ordering;
  use std::collections::{HashMap, HashSet};
  -use std::env;
  use std::ops::Range;
  use std::rc::Rc;
  use std::time::{Duration, Instant};
  @@ -20,6 +19,8 @@ pub struct ResolverProgress {
  time_to_print: Duration,
  printed: bool,
  deps_time: Duration,
  + #[cfg(debug_assertions)]
  + slow_cpu_multiplier: u64,
  }
  impl ResolverProgress {
  @@ -30,6 +31,14 @@ impl ResolverProgress {
  time_to_print: Duration::from_millis(500),
  printed: false,
  deps_time: Duration::new(0, 0),
  + // Some CI setups are much slower then the equipment used by Cargo itself.
  + // Architectures that do not have a modern processor, hardware emulation, ect.
  + // In the test code we have `slow_cpu_multiplier`, but that is not accessible here.
  + #[cfg(debug_assertions)]
  + slow_cpu_multiplier: std::env::var("CARGO_TEST_SLOW_CPU_MULTIPLIER")
  + .ok()
  + .and_then(|m| m.parse().ok())
  + .unwrap_or(1),
  }
  }
  pub fn shell_status(&mut self, config: Option<&Config>) -> CargoResult<()> {
  @@ -53,11 +62,13 @@ impl ResolverProgress {
  config.shell().status("Resolving", "dependency graph...")?;
  }
  }
  + #[cfg(debug_assertions)]
  + {
  // The largest test in our suite takes less then 5000 ticks
  // with all the algorithm improvements.
  // If any of them are removed then it takes more than I am willing to measure.
  // So lets fail the test fast if we have ben running for two long.
  - debug_assert!(
  + assert!(
  self.ticks < 50_000,
  "got to 50_000 ticks in {:?}",
  self.start.elapsed()
  @@ -66,19 +77,13 @@ impl ResolverProgress {
  // with all the improvements to how fast a tick can go.
  // If any of them are removed then it takes more than I am willing to measure.
  // So lets fail the test fast if we have ben running for two long.
  - if cfg!(debug_assertions) && (self.ticks % 1000 == 0) {
  - // Some CI setups are much slower then the equipment used by Cargo itself.
  - // Architectures that do not have a modern processor, hardware emulation, ect.
  - // In the test code we have `slow_cpu_multiplier`, but that is not accessible here.
  - lazy_static::lazy_static! {
  - static ref SLOW_CPU_MULTIPLIER: u64 =
  - env::var("CARGO_TEST_SLOW_CPU_MULTIPLIER").ok().and_then(|m| m.parse().ok()).unwrap_or(1);
  - }
  + if self.ticks % 1000 == 0 {
  assert!(
  self.start.elapsed() - self.deps_time
  - < Duration::from_secs(*SLOW_CPU_MULTIPLIER * 90)
  + < Duration::from_secs(self.slow_cpu_multiplier * 90)
  );
  }
  + }
  Ok(())
  }
  pub fn elapsed(&mut self, dur: Duration) {
  