about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorDavid Wood <david@davidtw.co>2018-03-21 19:47:08 +0000
committerDavid Wood <david@davidtw.co>2018-03-22 21:11:03 +0000
commitfc5c4daa88d2588a1eedc8caeb8ab61fc4622e8f (patch)
tree8794f1a7e64f4ffc8cec661c36e48ac72b4e09f8 /src
parente1648bde17542a3fb13496b6b3f15a23d31062ad (diff)
downloadrust-fc5c4daa88d2588a1eedc8caeb8ab61fc4622e8f.tar.gz
rust-fc5c4daa88d2588a1eedc8caeb8ab61fc4622e8f.zip
Temporarily only adding UserAssertTy on binding patterns.
Diffstat (limited to 'src')
-rw-r--r--src/librustc_mir/build/block.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/librustc_mir/build/block.rs b/src/librustc_mir/build/block.rs
index 02d2522b6ba..b2ab23024a8 100644
--- a/src/librustc_mir/build/block.rs
+++ b/src/librustc_mir/build/block.rs
@@ -125,11 +125,17 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> {
                                 })
                             }));
                     } else {
-                        this.visit_bindings(&pattern, &mut |this, _, _, node, span, _| {
-                            this.storage_live_binding(block, node, span);
+                        // FIXME: We currently only insert `UserAssertTy` statements for patterns
+                        // that are bindings, this is as we do not want to deconstruct the type
+                        // being assertion to match the pattern.
+                        if let PatternKind::Binding { var, .. } = *pattern.kind {
                             if let Some(ty) = ty {
-                                this.user_assert_ty(block, ty, node, span);
+                                this.user_assert_ty(block, ty, var, span);
                             }
+                        }
+
+                        this.visit_bindings(&pattern, &mut |this, _, _, node, span, _| {
+                            this.storage_live_binding(block, node, span);
                             this.schedule_drop_for_binding(node, span);
                         })
                     }