diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2018-08-31 18:34:03 -0400 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2018-09-10 08:22:31 -0400 |
| commit | 4b5f19a0b0495cf97e602b4c8e3b82d8e8f246a3 (patch) | |
| tree | babc93ac590b3b5d409c81686e408cc7cf89f978 | |
| parent | 34575e693b8ab1b91f75141067d2730ea069b806 (diff) | |
| download | rust-4b5f19a0b0495cf97e602b4c8e3b82d8e8f246a3.tar.gz rust-4b5f19a0b0495cf97e602b4c8e3b82d8e8f246a3.zip | |
remove the old `UserAssertTy` support
| -rw-r--r-- | src/librustc_mir/build/block.rs | 12 | ||||
| -rw-r--r-- | src/librustc_mir/build/matches/mod.rs | 23 | ||||
| -rw-r--r-- | src/librustc_mir/hair/mod.rs | 5 |
3 files changed, 2 insertions, 38 deletions
diff --git a/src/librustc_mir/build/block.rs b/src/librustc_mir/build/block.rs index c3637a5abeb..e0c2e3d8eff 100644 --- a/src/librustc_mir/build/block.rs +++ b/src/librustc_mir/build/block.rs @@ -106,7 +106,6 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> { remainder_scope, init_scope, pattern, - ty, initializer, lint_level } => { @@ -136,7 +135,7 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> { opt_destruction_scope.map(|de|(de, source_info)), block, |this| { let scope = (init_scope, source_info); this.in_scope(scope, lint_level, block, |this| { - this.expr_into_pattern(block, ty, pattern, init) + this.expr_into_pattern(block, pattern, init) }) })); } else { @@ -144,15 +143,6 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> { None, remainder_span, lint_level, slice::from_ref(&pattern), ArmHasGuard(false), None); - // FIXME(#47184): 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, var, span); - } - } - this.visit_bindings(&pattern, &mut |this, _, _, _, node, span, _| { this.storage_live_binding(block, node, span, OutsideGuard); this.schedule_drop_for_binding(node, span, OutsideGuard); diff --git a/src/librustc_mir/build/matches/mod.rs b/src/librustc_mir/build/matches/mod.rs index d3e67ea7b7d..f46e3a9f1fd 100644 --- a/src/librustc_mir/build/matches/mod.rs +++ b/src/librustc_mir/build/matches/mod.rs @@ -219,26 +219,8 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> { end_block.unit() } - pub fn user_assert_ty(&mut self, block: BasicBlock, hir_id: hir::HirId, - var: NodeId, span: Span) { - if self.hir.tcx().sess.opts.debugging_opts.disable_nll_user_type_assert { return; } - - let local_id = self.var_local_id(var, OutsideGuard); - let source_info = self.source_info(span); - - debug!("user_assert_ty: local_id={:?}", hir_id.local_id); - if let Some(c_ty) = self.hir.tables.user_provided_tys().get(hir_id) { - debug!("user_assert_ty: c_ty={:?}", c_ty); - self.cfg.push(block, Statement { - source_info, - kind: StatementKind::UserAssertTy(*c_ty, local_id), - }); - } - } - pub fn expr_into_pattern(&mut self, mut block: BasicBlock, - ty: Option<hir::HirId>, irrefutable_pat: Pattern<'tcx>, initializer: ExprRef<'tcx>) -> BlockAnd<()> { @@ -249,11 +231,6 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> { subpattern: None, .. } => { let place = self.storage_live_binding(block, var, irrefutable_pat.span, OutsideGuard); - - if let Some(ty) = ty { - self.user_assert_ty(block, ty, var, irrefutable_pat.span); - } - unpack!(block = self.into(&place, block, initializer)); self.schedule_drop_for_binding(var, irrefutable_pat.span, OutsideGuard); block.unit() diff --git a/src/librustc_mir/hair/mod.rs b/src/librustc_mir/hair/mod.rs index 2ddb810f491..0fd130c9041 100644 --- a/src/librustc_mir/hair/mod.rs +++ b/src/librustc_mir/hair/mod.rs @@ -93,12 +93,9 @@ pub enum StmtKind<'tcx> { /// lifetime of temporaries init_scope: region::Scope, - /// let <PAT>: ty = ... + /// `let <PAT> = ...` pattern: Pattern<'tcx>, - /// let pat: <TY> = init ... - ty: Option<hir::HirId>, - /// let pat: ty = <INIT> ... initializer: Option<ExprRef<'tcx>>, |
