]> git.lizzy.rs Git - rust.git/commitdiff
fix port for visit_statement
authorScott A Carr <s.carr1024@gmail.com>
Fri, 26 Aug 2016 19:39:16 +0000 (15:39 -0400)
committerScott A Carr <s.carr1024@gmail.com>
Fri, 26 Aug 2016 19:39:16 +0000 (15:39 -0400)
src/librustc_mir/transform/qualify_consts.rs

index 2879941fdc3201d10a9d3699bb1ca5c16abf7fa2..756b06a0a699c0e2c972b382c80fd0b4f0f69921 100644 (file)
@@ -36,6 +36,7 @@
 
 use std::collections::hash_map::Entry;
 use std::fmt;
+use std::usize;
 
 use super::promote_consts::{self, Candidate, TempState};
 
@@ -393,8 +394,8 @@ fn qualify_const(&mut self) -> Qualif {
                     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 @@ fn visit_source_info(&mut self, source_info: &SourceInfo) {
     }
 
     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,