From b06f0d16a9dc66654b4e41f4e57be26e6ef4e302 Mon Sep 17 00:00:00 2001
From: David Cook <divergentdave@gmail.com>
Date: Mon, 7 Sep 2020 15:09:34 -0500
Subject: [PATCH] Use try block instead of closure

---
 src/helpers.rs | 8 ++++----
 src/lib.rs     | 1 +
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/helpers.rs b/src/helpers.rs
index 9e4bc21ab1b..5bb620b563d 100644
--- a/src/helpers.rs
+++ b/src/helpers.rs
@@ -530,17 +530,17 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
         let nanoseconds_scalar = this.read_scalar(nanoseconds_place.into())?;
         let nanoseconds = nanoseconds_scalar.to_machine_isize(this)?;
 
-        Ok((move || {
+        Ok(try {
             // tv_sec must be non-negative.
             let seconds: u64 = seconds.try_into().ok()?;
             // tv_nsec must be non-negative.
             let nanoseconds: u32 = nanoseconds.try_into().ok()?;
             if nanoseconds >= 1_000_000_000 {
                 // tv_nsec must not be greater than 999,999,999.
-                return None;
+                None?
             }
-            Some(Duration::new(seconds, nanoseconds))
-        })())
+            Duration::new(seconds, nanoseconds)
+        })
     }
 }
 
diff --git a/src/lib.rs b/src/lib.rs
index 1b66d5ff6f3..77eac9a6324 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -3,6 +3,7 @@
 #![feature(map_first_last)]
 #![feature(never_type)]
 #![feature(or_patterns)]
+#![feature(try_blocks)]
 
 #![warn(rust_2018_idioms)]
 #![allow(clippy::cast_lossless)]