about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDylan DPC <dylan.dpc@gmail.com>2020-04-17 20:35:24 +0200
committerGitHub <noreply@github.com>2020-04-17 20:35:24 +0200
commit029e930ab7bb3ee3b664b70d8243b7e042d16d6e (patch)
treebb5e5f957e40cf62f5402efed1c46e3c81230a9a
parent07cb4f44e4b159a6be3e837be5b9c134f51f2485 (diff)
parentbe6716f7f9b26bab52bb1879b273df515fe181e9 (diff)
downloadrust-029e930ab7bb3ee3b664b70d8243b7e042d16d6e.tar.gz
rust-029e930ab7bb3ee3b664b70d8243b7e042d16d6e.zip
Rollup merge of #71247 - ldm0:minor, r=estebank
Remove unnecessary variable intialization

Minor fix.
-rw-r--r--src/librustc_typeck/check/expr.rs21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/librustc_typeck/check/expr.rs b/src/librustc_typeck/check/expr.rs
index 7cb51b4d6d8..dbda735aa99 100644
--- a/src/librustc_typeck/check/expr.rs
+++ b/src/librustc_typeck/check/expr.rs
@@ -975,18 +975,19 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
         expected: Expectation<'tcx>,
         expr: &'tcx hir::Expr<'tcx>,
     ) -> Ty<'tcx> {
-        let uty = expected.to_option(self).and_then(|uty| match uty.kind {
-            ty::Array(ty, _) | ty::Slice(ty) => Some(ty),
-            _ => None,
-        });
-
         let element_ty = if !args.is_empty() {
-            let coerce_to = uty.unwrap_or_else(|| {
-                self.next_ty_var(TypeVariableOrigin {
-                    kind: TypeVariableOriginKind::TypeInference,
-                    span: expr.span,
+            let coerce_to = expected
+                .to_option(self)
+                .and_then(|uty| match uty.kind {
+                    ty::Array(ty, _) | ty::Slice(ty) => Some(ty),
+                    _ => None,
                 })
-            });
+                .unwrap_or_else(|| {
+                    self.next_ty_var(TypeVariableOrigin {
+                        kind: TypeVariableOriginKind::TypeInference,
+                        span: expr.span,
+                    })
+                });
             let mut coerce = CoerceMany::with_coercion_sites(coerce_to, args);
             assert_eq!(self.diverges.get(), Diverges::Maybe);
             for e in args {