about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2013-04-30 14:07:26 -0400
committerNiko Matsakis <niko@alum.mit.edu>2013-04-30 14:07:26 -0400
commitaa48a170d55e3003b70626b16ccd698b5aca8269 (patch)
treedf6d01830a1f49420542676320dea97e5717c264 /src
parenta896440ca1b93cc5dc6edd827ea2ae89602bfa9e (diff)
dataflow: fix flow of information through pattern variants
Diffstat (limited to 'src')
-rw-r--r--src/librustc/middle/dataflow.rs3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/librustc/middle/dataflow.rs b/src/librustc/middle/dataflow.rs
index cfdd7f95030..9d032a1839e 100644
--- a/src/librustc/middle/dataflow.rs
+++ b/src/librustc/middle/dataflow.rs
@@ -846,10 +846,9 @@ impl<'self, O:DataFlowOperator> PropagationContext<'self, O> {
         // alternatives, so we must treat this like an N-way select
         // statement.
         let initial_state = reslice(in_out).to_vec();
-        self.reset(in_out);
         for pats.each |&pat| {
             let mut temp = copy initial_state;
-            self.walk_pat(pat, in_out, loop_scopes);
+            self.walk_pat(pat, temp, loop_scopes);
             join_bits(&self.dfcx.oper, temp, in_out);
         }
     }