aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/expr.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/expr.rs')
-rw-r--r--crates/ra_hir/src/expr.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/crates/ra_hir/src/expr.rs b/crates/ra_hir/src/expr.rs
index 663338844..6e98ebc69 100644
--- a/crates/ra_hir/src/expr.rs
+++ b/crates/ra_hir/src/expr.rs
@@ -197,6 +197,9 @@ pub enum Expr {
197 Tuple { 197 Tuple {
198 exprs: Vec<ExprId>, 198 exprs: Vec<ExprId>,
199 }, 199 },
200 Array {
201 exprs: Vec<ExprId>,
202 },
200 Literal(Literal), 203 Literal(Literal),
201} 204}
202 205
@@ -312,7 +315,7 @@ impl Expr {
312 | Expr::UnaryOp { expr, .. } => { 315 | Expr::UnaryOp { expr, .. } => {
313 f(*expr); 316 f(*expr);
314 } 317 }
315 Expr::Tuple { exprs } => { 318 Expr::Tuple { exprs } | Expr::Array { exprs } => {
316 for expr in exprs { 319 for expr in exprs {
317 f(*expr); 320 f(*expr);
318 } 321 }
@@ -649,6 +652,10 @@ impl ExprCollector {
649 let exprs = e.exprs().map(|expr| self.collect_expr(expr)).collect(); 652 let exprs = e.exprs().map(|expr| self.collect_expr(expr)).collect();
650 self.alloc_expr(Expr::Tuple { exprs }, syntax_ptr) 653 self.alloc_expr(Expr::Tuple { exprs }, syntax_ptr)
651 } 654 }
655 ast::ExprKind::ArrayExpr(e) => {
656 let exprs = e.exprs().map(|expr| self.collect_expr(expr)).collect();
657 self.alloc_expr(Expr::Array { exprs }, syntax_ptr)
658 }
652 ast::ExprKind::Literal(e) => { 659 ast::ExprKind::Literal(e) => {
653 let child = if let Some(child) = e.literal_expr() { 660 let child = if let Some(child) = e.literal_expr() {
654 child 661 child
@@ -691,7 +698,6 @@ impl ExprCollector {
691 // TODO implement HIR for these: 698 // TODO implement HIR for these:
692 ast::ExprKind::Label(_e) => self.alloc_expr(Expr::Missing, syntax_ptr), 699 ast::ExprKind::Label(_e) => self.alloc_expr(Expr::Missing, syntax_ptr),
693 ast::ExprKind::IndexExpr(_e) => self.alloc_expr(Expr::Missing, syntax_ptr), 700 ast::ExprKind::IndexExpr(_e) => self.alloc_expr(Expr::Missing, syntax_ptr),
694 ast::ExprKind::ArrayExpr(_e) => self.alloc_expr(Expr::Missing, syntax_ptr),
695 ast::ExprKind::RangeExpr(_e) => self.alloc_expr(Expr::Missing, syntax_ptr), 701 ast::ExprKind::RangeExpr(_e) => self.alloc_expr(Expr::Missing, syntax_ptr),
696 } 702 }
697 } 703 }