about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNick Cameron <ncameron@mozilla.com>2015-09-10 17:17:08 +1200
committerNick Cameron <ncameron@mozilla.com>2015-09-17 12:16:46 +1200
commitd21bfff78cd949ce72be57d3528c4f6985190feb (patch)
treeda9512bf339842c6a1c8d877df1e6bb55a53e8cb
parent70c6fb91938fb15c8814b47c402dc08b79108670 (diff)
downloadrust-d21bfff78cd949ce72be57d3528c4f6985190feb.tar.gz
rust-d21bfff78cd949ce72be57d3528c4f6985190feb.zip
Remove hir::ExprParen
-rw-r--r--src/librustc/middle/cfg/construct.rs1
-rw-r--r--src/librustc/middle/check_const.rs2
-rw-r--r--src/librustc/middle/const_eval.rs1
-rw-r--r--src/librustc/middle/expr_use_visitor.rs7
-rw-r--r--src/librustc/middle/liveness.rs7
-rw-r--r--src/librustc/middle/mem_categorization.rs4
-rw-r--r--src/librustc/middle/region.rs6
-rw-r--r--src/librustc_back/svh.rs2
-rw-r--r--src/librustc_front/fold.rs1
-rw-r--r--src/librustc_front/hir.rs3
-rw-r--r--src/librustc_front/lowering.rs4
-rw-r--r--src/librustc_front/print/pprust.rs5
-rw-r--r--src/librustc_front/visit.rs3
-rw-r--r--src/librustc_lint/builtin.rs3
-rw-r--r--src/librustc_mir/build/expr/as_constant.rs3
-rw-r--r--src/librustc_mir/build/expr/as_lvalue.rs3
-rw-r--r--src/librustc_mir/build/expr/as_operand.rs14
-rw-r--r--src/librustc_mir/build/expr/as_rvalue.rs3
-rw-r--r--src/librustc_mir/build/expr/as_temp.rs14
-rw-r--r--src/librustc_mir/build/expr/category.rs4
-rw-r--r--src/librustc_mir/build/expr/into.rs3
-rw-r--r--src/librustc_mir/hair.rs1
-rw-r--r--src/librustc_mir/tcx/expr.rs2
-rw-r--r--src/librustc_trans/trans/consts.rs3
-rw-r--r--src/librustc_trans/trans/debuginfo/create_scope_map.rs3
-rw-r--r--src/librustc_trans/trans/expr.rs11
-rw-r--r--src/librustc_typeck/check/method/confirm.rs1
-rw-r--r--src/librustc_typeck/check/mod.rs7
28 files changed, 18 insertions, 103 deletions
diff --git a/src/librustc/middle/cfg/construct.rs b/src/librustc/middle/cfg/construct.rs
index 3f6385ad82c..60aebd9cd42 100644
--- a/src/librustc/middle/cfg/construct.rs
+++ b/src/librustc/middle/cfg/construct.rs
@@ -354,7 +354,6 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
             hir::ExprAddrOf(_, ref e) |
             hir::ExprCast(ref e, _) |
             hir::ExprUnary(_, ref e) |
-            hir::ExprParen(ref e) |
             hir::ExprField(ref e, _) |
             hir::ExprTupField(ref e, _) => {
                 self.straightline(expr, pred, Some(&**e).into_iter())
diff --git a/src/librustc/middle/check_const.rs b/src/librustc/middle/check_const.rs
index d0451026d27..7da2c8f1492 100644
--- a/src/librustc/middle/check_const.rs
+++ b/src/librustc/middle/check_const.rs
@@ -678,7 +678,6 @@ fn check_expr<'a, 'tcx>(v: &mut CheckCrateVisitor<'a, 'tcx>,
             let mut callee = &**callee;
             loop {
                 callee = match callee.node {
-                    hir::ExprParen(ref inner) => &**inner,
                     hir::ExprBlock(ref block) => match block.expr {
                         Some(ref tail) => &**tail,
                         None => break
@@ -763,7 +762,6 @@ fn check_expr<'a, 'tcx>(v: &mut CheckCrateVisitor<'a, 'tcx>,
         hir::ExprField(..) |
         hir::ExprTupField(..) |
         hir::ExprVec(_) |
-        hir::ExprParen(..) |
         hir::ExprTup(..) => {}
 
         // Conditional control flow (possible to implement).
diff --git a/src/librustc/middle/const_eval.rs b/src/librustc/middle/const_eval.rs
index 11be35a24f5..8f5cf36278d 100644
--- a/src/librustc/middle/const_eval.rs
+++ b/src/librustc/middle/const_eval.rs
@@ -996,7 +996,6 @@ pub fn eval_const_expr_partial<'tcx>(tcx: &ty::ctxt<'tcx>,
       hir::ExprLit(ref lit) => {
           lit_to_const(&**lit, ety)
       }
-      hir::ExprParen(ref e) => try!(eval_const_expr_partial(tcx, &**e, ty_hint)),
       hir::ExprBlock(ref block) => {
         match block.expr {
             Some(ref expr) => try!(eval_const_expr_partial(tcx, &**expr, ty_hint)),
diff --git a/src/librustc/middle/expr_use_visitor.rs b/src/librustc/middle/expr_use_visitor.rs
index a8fed5eab16..c067c9b4d63 100644
--- a/src/librustc/middle/expr_use_visitor.rs
+++ b/src/librustc/middle/expr_use_visitor.rs
@@ -362,9 +362,6 @@ impl<'d,'t,'a,'tcx> ExprUseVisitor<'d,'t,'a,'tcx> {
         let cmt = return_if_err!(self.mc.cat_expr(expr));
         self.delegate.borrow(expr.id, expr.span, cmt, r, bk, cause);
 
-        // Note: Unlike consume, we can ignore ExprParen. cat_expr
-        // already skips over them, and walk will uncover any
-        // attachments or whatever.
         self.walk_expr(expr)
     }
 
@@ -378,10 +375,6 @@ impl<'d,'t,'a,'tcx> ExprUseVisitor<'d,'t,'a,'tcx> {
         self.walk_adjustment(expr);
 
         match expr.node {
-            hir::ExprParen(ref subexpr) => {
-                self.walk_expr(&**subexpr)
-            }
-
             hir::ExprPath(..) => { }
 
             hir::ExprUnary(hir::UnDeref, ref base) => {      // *base
diff --git a/src/librustc/middle/liveness.rs b/src/librustc/middle/liveness.rs
index 561760b29f1..9bb19bb37d8 100644
--- a/src/librustc/middle/liveness.rs
+++ b/src/librustc/middle/liveness.rs
@@ -495,7 +495,7 @@ fn visit_expr(ir: &mut IrMaps, expr: &Expr) {
       hir::ExprAgain(_) | hir::ExprLit(_) | hir::ExprRet(..) |
       hir::ExprBlock(..) | hir::ExprAssign(..) | hir::ExprAssignOp(..) |
       hir::ExprStruct(..) | hir::ExprRepeat(..) |
-      hir::ExprParen(..) | hir::ExprInlineAsm(..) | hir::ExprBox(..) |
+      hir::ExprInlineAsm(..) | hir::ExprBox(..) |
       hir::ExprRange(..) => {
           visit::walk_expr(ir, expr);
       }
@@ -1161,8 +1161,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
           hir::ExprBox(None, ref e) |
           hir::ExprAddrOf(_, ref e) |
           hir::ExprCast(ref e, _) |
-          hir::ExprUnary(_, ref e) |
-          hir::ExprParen(ref e) => {
+          hir::ExprUnary(_, ref e) => {
             self.propagate_through_expr(&**e, succ)
           }
 
@@ -1435,7 +1434,7 @@ fn check_expr(this: &mut Liveness, expr: &Expr) {
       hir::ExprCast(..) | hir::ExprUnary(..) | hir::ExprRet(..) |
       hir::ExprBreak(..) | hir::ExprAgain(..) | hir::ExprLit(_) |
       hir::ExprBlock(..) | hir::ExprAddrOf(..) |
-      hir::ExprStruct(..) | hir::ExprRepeat(..) | hir::ExprParen(..) |
+      hir::ExprStruct(..) | hir::ExprRepeat(..) |
       hir::ExprClosure(..) | hir::ExprPath(..) | hir::ExprBox(..) |
       hir::ExprRange(..) => {
         visit::walk_expr(this, expr);
diff --git a/src/librustc/middle/mem_categorization.rs b/src/librustc/middle/mem_categorization.rs
index dd2f48d25b4..2078ee2c57b 100644
--- a/src/librustc/middle/mem_categorization.rs
+++ b/src/librustc/middle/mem_categorization.rs
@@ -519,10 +519,6 @@ impl<'t, 'a,'tcx> MemCategorizationContext<'t, 'a, 'tcx> {
             self.cat_def(expr.id, expr.span, expr_ty, def)
           }
 
-          hir::ExprParen(ref e) => {
-            self.cat_expr(&**e)
-          }
-
           hir::ExprAddrOf(..) | hir::ExprCall(..) |
           hir::ExprAssign(..) | hir::ExprAssignOp(..) |
           hir::ExprClosure(..) | hir::ExprRet(..) |
diff --git a/src/librustc/middle/region.rs b/src/librustc/middle/region.rs
index f08cbb41438..c26982ff5ed 100644
--- a/src/librustc/middle/region.rs
+++ b/src/librustc/middle/region.rs
@@ -997,8 +997,7 @@ fn resolve_local(visitor: &mut RegionResolutionVisitor, local: &hir::Local) {
             hir::ExprUnary(hir::UnUniq, ref subexpr) => {
                 record_rvalue_scope_if_borrow_expr(visitor, &**subexpr, blk_id);
             }
-            hir::ExprCast(ref subexpr, _) |
-            hir::ExprParen(ref subexpr) => {
+            hir::ExprCast(ref subexpr, _) => {
                 record_rvalue_scope_if_borrow_expr(visitor, &**subexpr, blk_id)
             }
             hir::ExprBlock(ref block) => {
@@ -1047,8 +1046,7 @@ fn resolve_local(visitor: &mut RegionResolutionVisitor, local: &hir::Local) {
                 hir::ExprUnary(hir::UnDeref, ref subexpr) |
                 hir::ExprField(ref subexpr, _) |
                 hir::ExprTupField(ref subexpr, _) |
-                hir::ExprIndex(ref subexpr, _) |
-                hir::ExprParen(ref subexpr) => {
+                hir::ExprIndex(ref subexpr, _) => {
                     expr = &**subexpr;
                 }
                 _ => {
diff --git a/src/librustc_back/svh.rs b/src/librustc_back/svh.rs
index 36fc814234d..7134066d08c 100644
--- a/src/librustc_back/svh.rs
+++ b/src/librustc_back/svh.rs
@@ -249,7 +249,6 @@ mod svh_visitor {
         SawExprInlineAsm(&'a hir::InlineAsm),
         SawExprStruct,
         SawExprRepeat,
-        SawExprParen,
     }
 
     fn saw_expr<'a>(node: &'a Expr_) -> SawExprComponent<'a> {
@@ -283,7 +282,6 @@ mod svh_visitor {
             ExprInlineAsm(ref asm)   => SawExprInlineAsm(asm),
             ExprStruct(..)           => SawExprStruct,
             ExprRepeat(..)           => SawExprRepeat,
-            ExprParen(..)            => SawExprParen,
         }
     }
 
diff --git a/src/librustc_front/fold.rs b/src/librustc_front/fold.rs
index 0ff972f830f..0693092c04a 100644
--- a/src/librustc_front/fold.rs
+++ b/src/librustc_front/fold.rs
@@ -1164,7 +1164,6 @@ pub fn noop_fold_expr<T: Folder>(Expr {id, node, span}: Expr, folder: &mut T) ->
                         fields.move_map(|x| folder.fold_field(x)),
                         maybe_expr.map(|x| folder.fold_expr(x)))
             },
-            ExprParen(ex) => ExprParen(folder.fold_expr(ex))
         },
         span: folder.new_span(span)
     }
diff --git a/src/librustc_front/hir.rs b/src/librustc_front/hir.rs
index f329aa49daa..8bc8bda9e06 100644
--- a/src/librustc_front/hir.rs
+++ b/src/librustc_front/hir.rs
@@ -703,9 +703,6 @@ pub enum Expr_ {
     /// For example, `[1u8; 5]`. The first expression is the element
     /// to be repeated; the second is the number of times to repeat it.
     ExprRepeat(P<Expr>, P<Expr>),
-
-    /// No-op: used solely so we can pretty-print faithfully
-    ExprParen(P<Expr>)
 }
 
 /// The explicit Self type in a "qualified path". The actual
diff --git a/src/librustc_front/lowering.rs b/src/librustc_front/lowering.rs
index 38f9ec2c8e6..4f5f892043b 100644
--- a/src/librustc_front/lowering.rs
+++ b/src/librustc_front/lowering.rs
@@ -810,7 +810,9 @@ pub fn lower_expr(e: &Expr) -> P<hir::Expr> {
                             fields.iter().map(|x| lower_field(x)).collect(),
                             maybe_expr.as_ref().map(|x| lower_expr(x)))
                 },
-                ExprParen(ref ex) => hir::ExprParen(lower_expr(ex)),
+                ExprParen(ref ex) => {
+                    return lower_expr(ex);
+                }
                 ExprIfLet(..) |
                 ExprWhileLet(..) |
                 ExprForLoop(..) |
diff --git a/src/librustc_front/print/pprust.rs b/src/librustc_front/print/pprust.rs
index d8d85135dd8..d4a52a5ed8e 100644
--- a/src/librustc_front/print/pprust.rs
+++ b/src/librustc_front/print/pprust.rs
@@ -1556,11 +1556,6 @@ impl<'a> State<'a> {
 
                 try!(self.pclose());
             }
-            hir::ExprParen(ref e) => {
-                try!(self.popen());
-                try!(self.print_expr(&**e));
-                try!(self.pclose());
-            }
         }
         try!(self.ann.post(self, NodeExpr(expr)));
         self.end()
diff --git a/src/librustc_front/visit.rs b/src/librustc_front/visit.rs
index 4a3e74fd3fe..d9b4f374114 100644
--- a/src/librustc_front/visit.rs
+++ b/src/librustc_front/visit.rs
@@ -814,9 +814,6 @@ pub fn walk_expr<'v, V: Visitor<'v>>(visitor: &mut V, expression: &'v Expr) {
         ExprRet(ref optional_expression) => {
             walk_expr_opt(visitor, optional_expression)
         }
-        ExprParen(ref subexpression) => {
-            visitor.visit_expr(&**subexpression)
-        }
         ExprInlineAsm(ref ia) => {
             for input in &ia.inputs {
                 let (_, ref input) = *input;
diff --git a/src/librustc_lint/builtin.rs b/src/librustc_lint/builtin.rs
index ba0d41240e1..556acf44b45 100644
--- a/src/librustc_lint/builtin.rs
+++ b/src/librustc_lint/builtin.rs
@@ -154,9 +154,6 @@ impl LintPass for TypeLimits {
                     self.negated_expr_id = expr.id;
                 }
             },
-            hir::ExprParen(ref expr) if self.negated_expr_id == e.id => {
-                self.negated_expr_id = expr.id;
-            },
             hir::ExprBinary(binop, ref l, ref r) => {
                 if is_comparison(binop) && !check_limits(cx.tcx, binop, &**l, &**r) {
                     cx.span_lint(UNUSED_COMPARISONS, e.span,
diff --git a/src/librustc_mir/build/expr/as_constant.rs b/src/librustc_mir/build/expr/as_constant.rs
index a6d06c447a4..5d20fe4bab4 100644
--- a/src/librustc_mir/build/expr/as_constant.rs
+++ b/src/librustc_mir/build/expr/as_constant.rs
@@ -33,9 +33,6 @@ impl<H:Hair> Builder<H> {
             ExprKind::Scope { extent: _, value } => {
                 return this.as_constant(value);
             }
-            ExprKind::Paren { arg } => {
-                return this.as_constant(arg);
-            }
             ExprKind::Literal { literal } => {
                 ConstantKind::Literal(literal)
             }
diff --git a/src/librustc_mir/build/expr/as_lvalue.rs b/src/librustc_mir/build/expr/as_lvalue.rs
index 0ceafcc9a62..ffbb9781bdc 100644
--- a/src/librustc_mir/build/expr/as_lvalue.rs
+++ b/src/librustc_mir/build/expr/as_lvalue.rs
@@ -43,9 +43,6 @@ impl<H:Hair> Builder<H> {
                     this.as_lvalue(block, value)
                 })
             }
-            ExprKind::Paren { arg } => {
-                this.as_lvalue(block, arg)
-            }
             ExprKind::Field { lhs, name } => {
                 let lvalue = unpack!(block = this.as_lvalue(block, lhs));
                 let lvalue = lvalue.field(name);
diff --git a/src/librustc_mir/build/expr/as_operand.rs b/src/librustc_mir/build/expr/as_operand.rs
index ee090571b7c..0b236f3a1dc 100644
--- a/src/librustc_mir/build/expr/as_operand.rs
+++ b/src/librustc_mir/build/expr/as_operand.rs
@@ -39,16 +39,10 @@ impl<H:Hair> Builder<H> {
                block, expr);
         let this = self;
 
-        match expr.kind {
-            ExprKind::Scope { extent, value } => {
-                return this.in_scope(extent, block, |this| {
-                    this.as_operand(block, value)
-                });
-            }
-            ExprKind::Paren { arg } => {
-                return this.as_operand(block, arg);
-            }
-            _ => { }
+        if let ExprKind::Scope { extent, value } = expr.kind {
+            return this.in_scope(extent, block, |this| {
+                this.as_operand(block, value)
+            });
         }
 
         let category = Category::of(&expr.kind).unwrap();
diff --git a/src/librustc_mir/build/expr/as_rvalue.rs b/src/librustc_mir/build/expr/as_rvalue.rs
index e4d3ad21503..d03028ffea6 100644
--- a/src/librustc_mir/build/expr/as_rvalue.rs
+++ b/src/librustc_mir/build/expr/as_rvalue.rs
@@ -46,9 +46,6 @@ impl<H:Hair> Builder<H> {
                     this.as_rvalue(block, value)
                 })
             }
-            ExprKind::Paren { arg } => {
-                this.as_rvalue(block, arg)
-            }
             ExprKind::InlineAsm { asm } => {
                 block.and(Rvalue::InlineAsm(asm))
             }
diff --git a/src/librustc_mir/build/expr/as_temp.rs b/src/librustc_mir/build/expr/as_temp.rs
index 50f04e0177b..cb652c8a594 100644
--- a/src/librustc_mir/build/expr/as_temp.rs
+++ b/src/librustc_mir/build/expr/as_temp.rs
@@ -37,16 +37,10 @@ impl<H:Hair> Builder<H> {
                block, expr);
         let this = self;
 
-        match expr.kind {
-            ExprKind::Scope { extent, value } => {
-                return this.in_scope(extent, block, |this| {
-                    this.as_temp(block, value)
-                });
-            }
-            ExprKind::Paren { arg } => {
-                return this.as_temp(block, arg);
-            }
-            _ => { }
+        if let ExprKind::Scope { extent, value } = expr.kind {
+            return this.in_scope(extent, block, |this| {
+                this.as_temp(block, value)
+            });
         }
 
         let expr_ty = expr.ty.clone();
diff --git a/src/librustc_mir/build/expr/category.rs b/src/librustc_mir/build/expr/category.rs
index 1f9928acdc8..9cab2976b2c 100644
--- a/src/librustc_mir/build/expr/category.rs
+++ b/src/librustc_mir/build/expr/category.rs
@@ -43,9 +43,7 @@ pub enum RvalueFunc {
 impl Category {
     pub fn of<H:Hair>(ek: &ExprKind<H>) -> Option<Category> {
         match *ek {
-            ExprKind::Scope { .. } |
-            ExprKind::Paren { .. } =>
-                None,
+            ExprKind::Scope { .. } => None,
 
             ExprKind::Field { .. } |
             ExprKind::Deref { .. } |
diff --git a/src/librustc_mir/build/expr/into.rs b/src/librustc_mir/build/expr/into.rs
index b409903ad7e..72e505f2b6e 100644
--- a/src/librustc_mir/build/expr/into.rs
+++ b/src/librustc_mir/build/expr/into.rs
@@ -40,9 +40,6 @@ impl<H:Hair> Builder<H> {
                     this.into(destination, block, value)
                 })
             }
-            ExprKind::Paren { arg } => {
-                this.into(destination, block, arg)
-            }
             ExprKind::Block { body: ast_block } => {
                 this.ast_block(destination, block, ast_block)
             }
diff --git a/src/librustc_mir/hair.rs b/src/librustc_mir/hair.rs
index c63a0348337..f1450522dd8 100644
--- a/src/librustc_mir/hair.rs
+++ b/src/librustc_mir/hair.rs
@@ -171,7 +171,6 @@ pub struct Expr<H:Hair> {
 #[derive(Clone, Debug)]
 pub enum ExprKind<H:Hair> {
     Scope { extent: H::CodeExtent, value: ExprRef<H> },
-    Paren { arg: ExprRef<H> }, // ugh. should be able to remove this!
     Box { place: Option<ExprRef<H>>, value: ExprRef<H> },
     Call { fun: ExprRef<H>, args: Vec<ExprRef<H>> },
     Deref { arg: ExprRef<H> }, // NOT overloaded!
diff --git a/src/librustc_mir/tcx/expr.rs b/src/librustc_mir/tcx/expr.rs
index 350253c5b53..7e68993b130 100644
--- a/src/librustc_mir/tcx/expr.rs
+++ b/src/librustc_mir/tcx/expr.rs
@@ -267,8 +267,6 @@ impl<'a,'tcx:'a> Mirror<Cx<'a,'tcx>> for &'tcx hir::Expr {
 
             // Now comes the rote stuff:
 
-            hir::ExprParen(ref p) =>
-                ExprKind::Paren { arg: p.to_ref() },
             hir::ExprRepeat(ref v, ref c) =>
                 ExprKind::Repeat { value: v.to_ref(), count: c.to_ref() },
             hir::ExprRet(ref v) =>
diff --git a/src/librustc_trans/trans/consts.rs b/src/librustc_trans/trans/consts.rs
index 0f06e3cbfa4..1d0c5137ece 100644
--- a/src/librustc_trans/trans/consts.rs
+++ b/src/librustc_trans/trans/consts.rs
@@ -703,7 +703,6 @@ fn const_expr_unadjusted<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>,
             let mut cur = sub;
             loop {
                 match cur.node {
-                    hir::ExprParen(ref sub) => cur = sub,
                     hir::ExprBlock(ref blk) => {
                         if let Some(ref sub) = blk.expr {
                             cur = sub;
@@ -830,7 +829,6 @@ fn const_expr_unadjusted<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>,
             let mut callee = &**callee;
             loop {
                 callee = match callee.node {
-                    hir::ExprParen(ref inner) => &**inner,
                     hir::ExprBlock(ref block) => match block.expr {
                         Some(ref tail) => &**tail,
                         None => break,
@@ -870,7 +868,6 @@ fn const_expr_unadjusted<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>,
             const_fn_call(cx, MethodCallKey(method_call),
                           method_did, &arg_vals, param_substs)
         },
-        hir::ExprParen(ref e) => const_expr(cx, &**e, param_substs, fn_args).0,
         hir::ExprBlock(ref block) => {
             match block.expr {
                 Some(ref expr) => const_expr(cx, &**expr, param_substs, fn_args).0,
diff --git a/src/librustc_trans/trans/debuginfo/create_scope_map.rs b/src/librustc_trans/trans/debuginfo/create_scope_map.rs
index ca616b5622a..82808680049 100644
--- a/src/librustc_trans/trans/debuginfo/create_scope_map.rs
+++ b/src/librustc_trans/trans/debuginfo/create_scope_map.rs
@@ -322,8 +322,7 @@ fn walk_expr(cx: &CrateContext,
         hir::ExprCast(ref sub_exp, _)     |
         hir::ExprAddrOf(_, ref sub_exp)  |
         hir::ExprField(ref sub_exp, _) |
-        hir::ExprTupField(ref sub_exp, _) |
-        hir::ExprParen(ref sub_exp) =>
+        hir::ExprTupField(ref sub_exp, _) =>
             walk_expr(cx, &**sub_exp, scope_stack, scope_map),
 
         hir::ExprBox(ref place, ref sub_expr) => {
diff --git a/src/librustc_trans/trans/expr.rs b/src/librustc_trans/trans/expr.rs
index 55c833b7686..d8397b3c017 100644
--- a/src/librustc_trans/trans/expr.rs
+++ b/src/librustc_trans/trans/expr.rs
@@ -630,9 +630,6 @@ fn trans_datum_unadjusted<'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
     let _icx = push_ctxt("trans_datum_unadjusted");
 
     match expr.node {
-        hir::ExprParen(ref e) => {
-            trans(bcx, &**e)
-        }
         hir::ExprPath(..) => {
             trans_def(bcx, expr, bcx.def(expr.id))
         }
@@ -934,9 +931,6 @@ fn trans_rvalue_stmt_unadjusted<'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
     debuginfo::set_source_location(bcx.fcx, expr.id, expr.span);
 
     match expr.node {
-        hir::ExprParen(ref e) => {
-            trans_into(bcx, &**e, Ignore)
-        }
         hir::ExprBreak(label_opt) => {
             controlflow::trans_break(bcx, expr, label_opt.map(|l| l.node))
         }
@@ -1050,9 +1044,6 @@ fn trans_rvalue_dps_unadjusted<'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
     debuginfo::set_source_location(bcx.fcx, expr.id, expr.span);
 
     match expr.node {
-        hir::ExprParen(ref e) => {
-            trans_into(bcx, &**e, dest)
-        }
         hir::ExprPath(..) => {
             trans_def_dps_unadjusted(bcx, expr, bcx.def(expr.id), dest)
         }
@@ -2750,7 +2741,5 @@ fn expr_kind(tcx: &ty::ctxt, expr: &hir::Expr) -> ExprKind {
                 ExprKind::RvalueDps
             }
         }
-
-        hir::ExprParen(ref e) => expr_kind(tcx, &**e),
     }
 }
diff --git a/src/librustc_typeck/check/method/confirm.rs b/src/librustc_typeck/check/method/confirm.rs
index 572ba7a8487..abdcbf099a5 100644
--- a/src/librustc_typeck/check/method/confirm.rs
+++ b/src/librustc_typeck/check/method/confirm.rs
@@ -468,7 +468,6 @@ impl<'a,'tcx> ConfirmContext<'a,'tcx> {
         loop {
             let last = exprs[exprs.len() - 1];
             match last.node {
-                hir::ExprParen(ref expr) |
                 hir::ExprField(ref expr, _) |
                 hir::ExprTupField(ref expr, _) |
                 hir::ExprIndex(ref expr, _) |
diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs
index 51eee67df96..e5dbfdf1767 100644
--- a/src/librustc_typeck/check/mod.rs
+++ b/src/librustc_typeck/check/mod.rs
@@ -3444,13 +3444,6 @@ fn check_expr_with_unifier<'a, 'tcx, F>(fcx: &FnCtxt<'a, 'tcx>,
         }
         fcx.write_ty(id, fcx.infcx().next_diverging_ty_var());
       }
-      hir::ExprParen(ref a) => {
-        check_expr_with_expectation_and_lvalue_pref(fcx,
-                                                    &**a,
-                                                    expected,
-                                                    lvalue_pref);
-        fcx.write_ty(id, fcx.expr_ty(&**a));
-      }
       hir::ExprAssign(ref lhs, ref rhs) => {
         check_expr_with_lvalue_pref(fcx, &**lhs, PreferMutLvalue);