about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2016-11-04 16:49:31 -0700
committerAlex Crichton <alex@alexcrichton.com>2016-11-05 10:50:24 -0700
commit07cf4b418f9b4fa57124f85efc90d418d187c002 (patch)
tree6f80726ccbb6b334febc508c66553e6eb4686fc7
parent638436e55f00ff6ba2b95f15090b1477e4a05499 (diff)
parent43452a36efae22492ffef157ce44f05346bde1b0 (diff)
downloadrust-07cf4b418f9b4fa57124f85efc90d418d187c002.tar.gz
rust-07cf4b418f9b4fa57124f85efc90d418d187c002.zip
Rollup merge of #37577 - nnethercote:shrink-Expr-slightly, r=eddyb
Shrink `hir::Expr` slightly

r? @eddyb
-rw-r--r--src/librustc/hir/lowering.rs4
-rw-r--r--src/librustc/hir/mod.rs4
-rw-r--r--src/librustc_const_eval/eval.rs2
3 files changed, 5 insertions, 5 deletions
diff --git a/src/librustc/hir/lowering.rs b/src/librustc/hir/lowering.rs
index 105a9e099b1..e1fec898e41 100644
--- a/src/librustc/hir/lowering.rs
+++ b/src/librustc/hir/lowering.rs
@@ -1233,7 +1233,7 @@ impl<'a> LoweringContext<'a> {
                     hir::ExprInlineAsm(P(hir_asm), outputs, inputs)
                 }
                 ExprKind::Struct(ref path, ref fields, ref maybe_expr) => {
-                    hir::ExprStruct(self.lower_path(path),
+                    hir::ExprStruct(P(self.lower_path(path)),
                                     fields.iter().map(|x| self.lower_field(x)).collect(),
                                     maybe_expr.as_ref().map(|x| self.lower_expr(x)))
                 }
@@ -1737,7 +1737,7 @@ impl<'a> LoweringContext<'a> {
                    e: Option<P<hir::Expr>>,
                    attrs: ThinVec<Attribute>) -> P<hir::Expr> {
         let def = self.resolver.resolve_generated_global_path(&path, false);
-        let expr = self.expr(sp, hir::ExprStruct(path, fields, e), attrs);
+        let expr = self.expr(sp, hir::ExprStruct(P(path), fields, e), attrs);
         self.resolver.record_resolution(expr.id, def);
         expr
     }
diff --git a/src/librustc/hir/mod.rs b/src/librustc/hir/mod.rs
index c451a789193..5f57ceac353 100644
--- a/src/librustc/hir/mod.rs
+++ b/src/librustc/hir/mod.rs
@@ -840,8 +840,8 @@ pub enum UnsafeSource {
 #[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, Hash)]
 pub struct Expr {
     pub id: NodeId,
-    pub node: Expr_,
     pub span: Span,
+    pub node: Expr_,
     pub attrs: ThinVec<Attribute>,
 }
 
@@ -946,7 +946,7 @@ pub enum Expr_ {
     ///
     /// For example, `Foo {x: 1, y: 2}`, or
     /// `Foo {x: 1, .. base}`, where `base` is the `Option<Expr>`.
-    ExprStruct(Path, HirVec<Field>, Option<P<Expr>>),
+    ExprStruct(P<Path>, HirVec<Field>, Option<P<Expr>>),
 
     /// An array literal constructed from one repeated element.
     ///
diff --git a/src/librustc_const_eval/eval.rs b/src/librustc_const_eval/eval.rs
index d2de6259043..57a5400ecad 100644
--- a/src/librustc_const_eval/eval.rs
+++ b/src/librustc_const_eval/eval.rs
@@ -314,7 +314,7 @@ pub fn const_expr_to_pat<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
                           },
                       }))
                       .collect::<Result<_, _>>()?;
-            PatKind::Struct(path.clone(), field_pats, false)
+            PatKind::Struct((**path).clone(), field_pats, false)
         }
 
         hir::ExprArray(ref exprs) => {