diff --git a/Cargo.toml b/Cargo.toml index 1d87c5836a5..fc9b48a90ac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,7 +24,7 @@ crypto-hash = "0.3" curl = "0.4.6" env_logger = "0.5" failure = "0.1.1" -filetime = "0.1" +filetime = "0.2" flate2 = "1.0" fs2 = "0.4" git2 = "0.7.0" diff --git a/src/cargo/core/compiler/fingerprint.rs b/src/cargo/core/compiler/fingerprint.rs index 8387fd2fdef..9d3fc4d503f 100644 --- a/src/cargo/core/compiler/fingerprint.rs +++ b/src/cargo/core/compiler/fingerprint.rs @@ -386,7 +386,7 @@ impl ser::Serialize for MtimeSlot { self.0 .lock() .unwrap() - .map(|ft| (ft.seconds_relative_to_1970(), ft.nanoseconds())) + .map(|ft| (ft.unix_seconds(), ft.nanoseconds())) .serialize(s) } } @@ -396,9 +396,9 @@ impl<'de> de::Deserialize<'de> for MtimeSlot { where D: de::Deserializer<'de>, { - let kind: Option<(u64, u32)> = de::Deserialize::deserialize(d)?; + let kind: Option<(i64, u32)> = de::Deserialize::deserialize(d)?; Ok(MtimeSlot(Mutex::new(kind.map(|(s, n)| { - FileTime::from_seconds_since_1970(s, n) + FileTime::from_unix_time(s, n) })))) } } diff --git a/tests/testsuite/cargotest/support/paths.rs b/tests/testsuite/cargotest/support/paths.rs index 78b30ee7788..c6fbdff5689 100644 --- a/tests/testsuite/cargotest/support/paths.rs +++ b/tests/testsuite/cargotest/support/paths.rs @@ -69,7 +69,7 @@ pub trait CargoPathExt { fn move_in_time(&self, travel_amount: F) where - F: Fn(u64, u32) -> (u64, u32); + F: Fn(i64, u32) -> (i64, u32); } impl CargoPathExt for Path { @@ -102,7 +102,7 @@ impl CargoPathExt for Path { fn move_in_time(&self, travel_amount: F) where - F: Fn(u64, u32) -> ((u64, u32)), + F: Fn(i64, u32) -> ((i64, u32)), { if self.is_file() { time_travel(self, &travel_amount); @@ -112,7 +112,7 @@ impl CargoPathExt for Path { fn recurse(p: &Path, bad: &Path, travel_amount: &F) where - F: Fn(u64, u32) -> ((u64, u32)), + F: Fn(i64, u32) -> ((i64, u32)), { if p.is_file() { time_travel(p, travel_amount) @@ -126,14 +126,14 @@ impl CargoPathExt for Path { fn time_travel(path: &Path, travel_amount: &F) where - F: Fn(u64, u32) -> ((u64, u32)), + F: Fn(i64, u32) -> ((i64, u32)), { let stat = t!(path.metadata()); let mtime = FileTime::from_last_modification_time(&stat); - let (sec, nsec) = travel_amount(mtime.seconds_relative_to_1970(), mtime.nanoseconds()); - let newtime = FileTime::from_seconds_since_1970(sec, nsec); + let (sec, nsec) = travel_amount(mtime.unix_seconds(), mtime.nanoseconds()); + let newtime = FileTime::from_unix_time(sec, nsec); // Sadly change_file_times has a failure mode where a readonly file // cannot have its times changed on windows.