diff options
| author | David Wood <david@davidtw.co> | 2018-03-21 19:47:08 +0000 |
|---|---|---|
| committer | David Wood <david@davidtw.co> | 2018-03-22 21:11:03 +0000 |
| commit | fc5c4daa88d2588a1eedc8caeb8ab61fc4622e8f (patch) | |
| tree | 8794f1a7e64f4ffc8cec661c36e48ac72b4e09f8 /src | |
| parent | e1648bde17542a3fb13496b6b3f15a23d31062ad (diff) | |
| download | rust-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.rs | 12 |
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); }) } |
