aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/hir/rust-ast-lower.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/hir/rust-ast-lower.cc')
-rw-r--r--gcc/rust/hir/rust-ast-lower.cc15
1 files changed, 7 insertions, 8 deletions
diff --git a/gcc/rust/hir/rust-ast-lower.cc b/gcc/rust/hir/rust-ast-lower.cc
index c2fd54d..9b6227c 100644
--- a/gcc/rust/hir/rust-ast-lower.cc
+++ b/gcc/rust/hir/rust-ast-lower.cc
@@ -72,7 +72,7 @@ ASTLowering::Resolve (AST::Crate &astCrate)
std::unique_ptr<HIR::Crate>
ASTLowering::go ()
{
- std::vector<std::unique_ptr<HIR::Item> > items;
+ std::vector<std::unique_ptr<HIR::Item>> items;
for (auto it = astCrate.items.begin (); it != astCrate.items.end (); it++)
{
@@ -95,14 +95,11 @@ ASTLowering::go ()
void
ASTLoweringBlock::visit (AST::BlockExpr &expr)
{
- std::vector<std::unique_ptr<HIR::Stmt> > block_stmts;
+ std::vector<std::unique_ptr<HIR::Stmt>> block_stmts;
bool block_did_terminate = false;
for (auto &s : expr.get_statements ())
{
- if (s->get_ast_kind () == AST::Kind::MACRO_RULES_DEFINITION)
- continue;
-
if (s->get_ast_kind () == AST::Kind::MACRO_INVOCATION)
rust_fatal_error (
s->get_locus (),
@@ -115,8 +112,10 @@ ASTLoweringBlock::visit (AST::BlockExpr &expr)
bool terminated = false;
auto translated_stmt = ASTLoweringStmt::translate (s.get (), &terminated);
- block_stmts.push_back (std::unique_ptr<HIR::Stmt> (translated_stmt));
block_did_terminate |= terminated;
+
+ if (translated_stmt)
+ block_stmts.push_back (std::unique_ptr<HIR::Stmt> (translated_stmt));
}
if (expr.has_tail_expr () && block_did_terminate)
@@ -230,7 +229,7 @@ ASTLoweringIfBlock::visit (AST::IfExprConseqIf &expr)
void
ASTLoweringIfLetBlock::visit (AST::IfLetExpr &expr)
{
- std::vector<std::unique_ptr<HIR::Pattern> > patterns;
+ std::vector<std::unique_ptr<HIR::Pattern>> patterns;
for (auto &pattern : expr.get_patterns ())
{
HIR::Pattern *ptrn = ASTLoweringPattern::translate (pattern.get ());
@@ -372,7 +371,7 @@ ASTLoweringExprWithBlock::visit (AST::MatchExpr &expr)
match_case.get_arm ().get_guard_expr ().get ());
}
- std::vector<std::unique_ptr<HIR::Pattern> > match_arm_patterns;
+ std::vector<std::unique_ptr<HIR::Pattern>> match_arm_patterns;
for (auto &pattern : match_case.get_arm ().get_patterns ())
{
HIR::Pattern *ptrn = ASTLoweringPattern::translate (pattern.get ());