From 4b5f19a0b0495cf97e602b4c8e3b82d8e8f246a3 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 31 Aug 2018 18:34:03 -0400 Subject: [PATCH] remove the old `UserAssertTy` support --- src/librustc_mir/build/block.rs | 12 +----------- src/librustc_mir/build/matches/mod.rs | 23 ----------------------- 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 c3637a5abebdc..e0c2e3d8eff48 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 d3e67ea7b7d71..f46e3a9f1fd84 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, 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 2ddb810f49148..0fd130c9041f8 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 : ty = ... + /// `let = ...` pattern: Pattern<'tcx>, - /// let pat: = init ... - ty: Option, - /// let pat: ty = ... initializer: Option>,