From: Owen Avery <powerboat9.ga...@gmail.com>

gcc/rust/ChangeLog:

        * ast/rust-expr.h (ClosureExpr::get_definition_expr): New
        virtual member function.
        (ClosureExprInner::get_definition_expr): Add override specifier.
        (ClosureExprInnerTyped::get_definition_block): Rename to...
        (ClosureExprInnerTyped::get_definition_expr): ...here and add
        override specifier.

        * ast/rust-ast-collector.cc (TokenCollector::visit): Handle
        rename of ClosureExprInnerTyped::get_definition_block to
        ClosureExprInnerTyped::get_definition_expr.
        * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
        * expand/rust-cfg-strip.cc (CfgStrip::visit): Likewise.
        * expand/rust-expand-visitor.cc (ExpandVisitor::visit):
        Likewise.
        * hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Likewise.
        * resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit):
        Likewise.
        * resolve/rust-late-name-resolver-2.0.cc (Late::visit):
        Likewise.

Signed-off-by: Owen Avery <powerboat9.ga...@gmail.com>
---
 gcc/rust/ast/rust-ast-collector.cc              | 2 +-
 gcc/rust/ast/rust-ast-visitor.cc                | 2 +-
 gcc/rust/ast/rust-expr.h                        | 6 ++++--
 gcc/rust/expand/rust-cfg-strip.cc               | 2 +-
 gcc/rust/expand/rust-expand-visitor.cc          | 2 +-
 gcc/rust/hir/rust-ast-lower-expr.cc             | 2 +-
 gcc/rust/resolve/rust-ast-resolve-expr.cc       | 2 +-
 gcc/rust/resolve/rust-late-name-resolver-2.0.cc | 2 +-
 8 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/gcc/rust/ast/rust-ast-collector.cc 
b/gcc/rust/ast/rust-ast-collector.cc
index c6ec0e7bb9b..94a0240b510 100644
--- a/gcc/rust/ast/rust-ast-collector.cc
+++ b/gcc/rust/ast/rust-ast-collector.cc
@@ -1291,7 +1291,7 @@ TokenCollector::visit (ClosureExprInnerTyped &expr)
   visit_closure_common (expr);
   push (Rust::Token::make (RETURN_TYPE, expr.get_locus ()));
   visit (expr.get_return_type ());
-  visit (expr.get_definition_block ());
+  visit (expr.get_definition_expr ());
 }
 
 void
diff --git a/gcc/rust/ast/rust-ast-visitor.cc b/gcc/rust/ast/rust-ast-visitor.cc
index bd1b65aaec9..ab6a022ccee 100644
--- a/gcc/rust/ast/rust-ast-visitor.cc
+++ b/gcc/rust/ast/rust-ast-visitor.cc
@@ -474,7 +474,7 @@ DefaultASTVisitor::visit (AST::ClosureExprInnerTyped &expr)
   for (auto &param : expr.get_params ())
     visit (param);
   visit (expr.get_return_type ());
-  visit (expr.get_definition_block ());
+  visit (expr.get_definition_expr ());
 }
 
 void
diff --git a/gcc/rust/ast/rust-expr.h b/gcc/rust/ast/rust-expr.h
index ba20bfaa601..8f44d5878bb 100644
--- a/gcc/rust/ast/rust-expr.h
+++ b/gcc/rust/ast/rust-expr.h
@@ -2506,6 +2506,8 @@ public:
   bool get_has_move () const { return has_move; }
 
   Expr::Kind get_expr_kind () const override { return Expr::Kind::Closure; }
+
+  virtual Expr &get_definition_expr () = 0;
 };
 
 // Represents a non-type-specified closure expression AST node
@@ -2565,7 +2567,7 @@ public:
     return closure_inner == nullptr;
   }
 
-  Expr &get_definition_expr ()
+  Expr &get_definition_expr () override
   {
     rust_assert (closure_inner != nullptr);
     return *closure_inner;
@@ -2932,7 +2934,7 @@ public:
   bool is_marked_for_strip () const override { return expr == nullptr; }
 
   // TODO: is this better? Or is a "vis_block" better?
-  BlockExpr &get_definition_block ()
+  BlockExpr &get_definition_expr () override
   {
     rust_assert (expr != nullptr);
     return *expr;
diff --git a/gcc/rust/expand/rust-cfg-strip.cc 
b/gcc/rust/expand/rust-cfg-strip.cc
index f761f9916c9..916a695ad26 100644
--- a/gcc/rust/expand/rust-cfg-strip.cc
+++ b/gcc/rust/expand/rust-cfg-strip.cc
@@ -1192,7 +1192,7 @@ CfgStrip::visit (AST::ClosureExprInnerTyped &expr)
     rust_error_at (type.get_locus (), "cannot strip type in this position");
 
   // can't strip expression itself, but can strip sub-expressions
-  auto &definition_block = expr.get_definition_block ();
+  auto &definition_block = expr.get_definition_expr ();
   definition_block.accept_vis (*this);
   if (definition_block.is_marked_for_strip ())
     rust_error_at (definition_block.get_locus (),
diff --git a/gcc/rust/expand/rust-expand-visitor.cc 
b/gcc/rust/expand/rust-expand-visitor.cc
index 42df5e1ee11..ba7bac12ddf 100644
--- a/gcc/rust/expand/rust-expand-visitor.cc
+++ b/gcc/rust/expand/rust-expand-visitor.cc
@@ -641,7 +641,7 @@ ExpandVisitor::visit (AST::ClosureExprInnerTyped &expr)
 
   maybe_expand_type (expr.get_return_type_ptr ());
 
-  visit (expr.get_definition_block ());
+  visit (expr.get_definition_expr ());
 }
 
 void
diff --git a/gcc/rust/hir/rust-ast-lower-expr.cc 
b/gcc/rust/hir/rust-ast-lower-expr.cc
index 16e80a0841a..3f3d6007e46 100644
--- a/gcc/rust/hir/rust-ast-lower-expr.cc
+++ b/gcc/rust/hir/rust-ast-lower-expr.cc
@@ -836,7 +836,7 @@ ASTLoweringExpr::visit (AST::ClosureExprInnerTyped &expr)
 {
   HIR::Type *closure_return_type = nullptr;
   HIR::Expr *closure_expr
-    = ASTLoweringExpr::translate (expr.get_definition_block ());
+    = ASTLoweringExpr::translate (expr.get_definition_expr ());
 
   std::vector<HIR::ClosureParam> closure_params;
   for (auto &param : expr.get_params ())
diff --git a/gcc/rust/resolve/rust-ast-resolve-expr.cc 
b/gcc/rust/resolve/rust-ast-resolve-expr.cc
index ff5571bb34b..a41019371cb 100644
--- a/gcc/rust/resolve/rust-ast-resolve-expr.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-expr.cc
@@ -786,7 +786,7 @@ ResolveExpr::visit (AST::ClosureExprInnerTyped &expr)
 
   resolver->push_closure_context (expr.get_node_id ());
 
-  ResolveExpr::go (expr.get_definition_block (), prefix, canonical_prefix);
+  ResolveExpr::go (expr.get_definition_expr (), prefix, canonical_prefix);
 
   resolver->pop_closure_context ();
 
diff --git a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc 
b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
index 1c0850c66f4..0d7f25e0449 100644
--- a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
+++ b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
@@ -730,7 +730,7 @@ Late::visit (AST::ClosureExprInnerTyped &closure)
   ctx.bindings.exit ();
 
   visit (closure.get_return_type ());
-  visit (closure.get_definition_block ());
+  visit (closure.get_definition_expr ());
 }
 
 } // namespace Resolver2_0
-- 
2.49.0

Reply via email to