From c043a27e4232993d4366962f854d4d3812c66fff Mon Sep 17 00:00:00 2001 From: Scott A Carr Date: Fri, 26 Aug 2016 15:39:16 -0400 Subject: [PATCH] fix port for visit_statement --- src/librustc_mir/transform/qualify_consts.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/librustc_mir/transform/qualify_consts.rs b/src/librustc_mir/transform/qualify_consts.rs index 2879941fdc3..756b06a0a69 100644 --- a/src/librustc_mir/transform/qualify_consts.rs +++ b/src/librustc_mir/transform/qualify_consts.rs @@ -36,6 +36,7 @@ use syntax_pos::Span; use std::collections::hash_map::Entry; use std::fmt; +use std::usize; use super::promote_consts::{self, Candidate, TempState}; @@ -393,8 +394,8 @@ impl<'a, 'tcx> Qualifier<'a, 'tcx, 'tcx> { for index in 0..mir.var_decls.len() { if !self.const_fn_arg_vars.contains(index) { self.assign(&Lvalue::Var(Var::new(index)), Location { - block: BasicBlock::new(0), - statement_index: 0 + block: bb, + statement_index: usize::MAX, }); } } @@ -859,7 +860,17 @@ impl<'a, 'tcx> Visitor<'tcx> for Qualifier<'a, 'tcx, 'tcx> { } fn visit_statement(&mut self, bb: BasicBlock, statement: &Statement<'tcx>, location: Location) { - self.nest(|this| this.super_statement(bb, statement, location)); + self.nest(|this| { + this.visit_source_info(&statement.source_info); + match statement.kind { + StatementKind::Assign(ref lvalue, ref rvalue) => { + this.visit_assign(bb, lvalue, rvalue, location); + } + StatementKind::SetDiscriminant { .. } | + StatementKind::StorageLive(_) | + StatementKind::StorageDead(_) => {} + } + }); } fn visit_terminator(&mut self,