Skip to content

Commit 441d781

Browse files
powerboat9CohenArthur
authored andcommitted
Handle IfLetExprConseqElse in DefaultResolver
This relies on the DefaultASTVisitor visitor for IfLetExprConseqElse performing a virtual call of the visitor for IfLetExpr, which doesn't hold when DefaultASTVisitor is generated by the X-macro-DSL-system I have in another patch. gcc/rust/ChangeLog: * resolve/rust-default-resolver.cc (DefaultResolver::visit): Add visitor for IfLetExprConseqElse. * resolve/rust-default-resolver.h (DefaultResolver::visit): Likewise. Signed-off-by: Owen Avery <[email protected]>
1 parent 805d332 commit 441d781

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

gcc/rust/resolve/rust-default-resolver.cc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,13 @@ DefaultResolver::visit (AST::IfLetExpr &expr)
110110
ctx.scoped (Rib::Kind::Normal, expr.get_node_id (), inner_vis);
111111
}
112112

113+
void
114+
DefaultResolver::visit (AST::IfLetExprConseqElse &expr)
115+
{
116+
DefaultResolver::visit (static_cast<AST::IfLetExpr &> (expr));
117+
visit (expr.get_else_block ());
118+
}
119+
113120
void
114121
DefaultResolver::visit (AST::Trait &trait)
115122
{

gcc/rust/resolve/rust-default-resolver.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class DefaultResolver : public AST::DefaultASTVisitor
4949
void visit (AST::ForLoopExpr &expr) override;
5050
virtual void visit_if_let_patterns (AST::IfLetExpr &expr);
5151
void visit (AST::IfLetExpr &expr) override;
52+
void visit (AST::IfLetExprConseqElse &expr) override;
5253
void visit (AST::Trait &) override;
5354
// used to handle Self insertion in TopLevel
5455
virtual void maybe_insert_big_self (AST::Impl &) {}

0 commit comments

Comments
 (0)