diff options
| author | Jonas Schievink <jonas@schievink.net> | 2016-03-13 14:42:13 +0100 |
|---|---|---|
| committer | Jonas Schievink <jonas@schievink.net> | 2016-03-16 12:19:58 +0100 |
| commit | 4dbb01ff65b87ae7130b4180d3fe46c9f2fc358f (patch) | |
| tree | ea6085a207df9321c2282dfe5556a6ffdbd2aafd /src | |
| parent | f0b0a4ff2a4102e9429320a7f4d76d7c834f5bf5 (diff) | |
Use `fully_normalize`, unwrapping its result
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/middle/liveness.rs | 17 |
1 files 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 self::VarKind::*; 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 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> { 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 { |
