From 4dbb01ff65b87ae7130b4180d3fe46c9f2fc358f Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Sun, 13 Mar 2016 14:42:13 +0100 Subject: [PATCH] Use `fully_normalize`, unwrapping its result --- src/librustc/middle/liveness.rs | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/librustc/middle/liveness.rs b/src/librustc/middle/liveness.rs index a24b4952987..5c1b64ac002 100644 --- a/src/librustc/middle/liveness.rs +++ b/src/librustc/middle/liveness.rs @@ -112,7 +112,7 @@ use dep_graph::DepNode; use middle::def::*; use middle::pat_util; -use middle::ty::{self, TyCtxt}; +use middle::ty::{self, TyCtxt, ParameterEnvironment}; use middle::traits; use middle::infer; use lint; @@ -1494,15 +1494,16 @@ fn check_ret(&self, ty::FnConverging(t_ret) if self.live_on_entry(entry_ln, self.s.no_ret_var).is_some() => { - let infcx = infer::new_infer_ctxt(&self.ir.tcx, &self.ir.tcx.tables, None); - let mut selcx = traits::SelectionContext::new(&infcx); + let param_env = ParameterEnvironment::for_item(&self.ir.tcx, id); + let infcx = infer::new_infer_ctxt(&self.ir.tcx, + &self.ir.tcx.tables, + Some(param_env)); let cause = traits::ObligationCause::dummy(); + let norm = traits::fully_normalize(&infcx, + cause, + &t_ret); - let norm = traits::normalize(&mut selcx, - cause, - &t_ret); - - if norm.value.is_nil() { + if norm.unwrap().is_nil() { // for nil return types, it is ok to not return a value expl. } else { let ends_with_stmt = match body.expr { -- 2.44.0