diff options
-rw-r--r-- | dhall/src/semantics/resolve/cache.rs | 8 | ||||
-rw-r--r-- | dhall/src/semantics/resolve/resolve.rs | 31 |
2 files changed, 18 insertions, 21 deletions
diff --git a/dhall/src/semantics/resolve/cache.rs b/dhall/src/semantics/resolve/cache.rs index 7763f18..b00a2d5 100644 --- a/dhall/src/semantics/resolve/cache.rs +++ b/dhall/src/semantics/resolve/cache.rs @@ -55,11 +55,9 @@ impl Cache { pub fn get(&self, hash: &Hash) -> Result<Typed, Error> { let path = self.entry_path(hash); let res = read_cache_file(&path, hash); - if let Err(_) = res { - if path.exists() { - // Delete cache file since it's invalid. We ignore the error. - let _ = std::fs::remove_file(&path); - } + if res.is_err() && path.exists() { + // Delete cache file since it's invalid. We ignore the error. + let _ = std::fs::remove_file(&path); } res } diff --git a/dhall/src/semantics/resolve/resolve.rs b/dhall/src/semantics/resolve/resolve.rs index 68b899c..572df25 100644 --- a/dhall/src/semantics/resolve/resolve.rs +++ b/dhall/src/semantics/resolve/resolve.rs @@ -218,23 +218,22 @@ fn make_aslocation_uniontype() -> Expr { } fn check_hash(import: &Import, typed: &Typed, span: Span) -> Result<(), Error> { - match (import.mode, &import.hash) { - (ImportMode::Code, Some(Hash::SHA256(hash))) => { - let actual_hash = typed.hir.to_expr_alpha().sha256_hash()?; - if hash[..] != actual_hash[..] { - mkerr( - ErrorBuilder::new("hash mismatch") - .span_err(span, "hash mismatch") - .note(format!("Expected sha256:{}", hex::encode(hash))) - .note(format!( - "Found sha256:{}", - hex::encode(actual_hash) - )) - .format(), - )? - } + if let (ImportMode::Code, Some(Hash::SHA256(hash))) = + (import.mode, &import.hash) + { + let actual_hash = typed.hir.to_expr_alpha().sha256_hash()?; + if hash[..] != actual_hash[..] { + mkerr( + ErrorBuilder::new("hash mismatch") + .span_err(span, "hash mismatch") + .note(format!("Expected sha256:{}", hex::encode(hash))) + .note(format!( + "Found sha256:{}", + hex::encode(actual_hash) + )) + .format(), + )? } - _ => {} } Ok(()) } |