[gcc r14-8151] gccrs: Move default visitor templates to header

Arthur Cohen cohenarthur@gcc.gnu.org
Tue Jan 16 18:18:03 GMT 2024


https://gcc.gnu.org/g:4011a8b5a16abca411b74aa0fd131c3dc0b3771a

commit r14-8151-g4011a8b5a16abca411b74aa0fd131c3dc0b3771a
Author: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Date:   Tue Nov 7 13:02:20 2023 +0100

    gccrs: Move default visitor templates to header
    
    Move default ast visitor template implementation to headers in order to
    match the codebase and avoid link errors.
    
    gcc/rust/ChangeLog:
    
            * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Move from here...
            * ast/rust-ast-visitor.h: ... to here.
    
    Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>

Diff:
---
 gcc/rust/ast/rust-ast-visitor.cc | 14 --------------
 gcc/rust/ast/rust-ast-visitor.h  |  7 +++++--
 2 files changed, 5 insertions(+), 16 deletions(-)

diff --git a/gcc/rust/ast/rust-ast-visitor.cc b/gcc/rust/ast/rust-ast-visitor.cc
index d8395820892..4ec5c7cf1d0 100644
--- a/gcc/rust/ast/rust-ast-visitor.cc
+++ b/gcc/rust/ast/rust-ast-visitor.cc
@@ -30,20 +30,6 @@
 namespace Rust {
 namespace AST {
 
-template <typename T>
-void
-DefaultASTVisitor::visit (T &node)
-{
-  node.accept_vis (*this);
-}
-
-template <typename T>
-void
-DefaultASTVisitor::visit (std::unique_ptr<T> &node)
-{
-  node->accept_vis (*this);
-}
-
 void
 DefaultASTVisitor::visit (AST::Crate &crate)
 {
diff --git a/gcc/rust/ast/rust-ast-visitor.h b/gcc/rust/ast/rust-ast-visitor.h
index e5be44157ed..43cd750f5f7 100644
--- a/gcc/rust/ast/rust-ast-visitor.h
+++ b/gcc/rust/ast/rust-ast-visitor.h
@@ -395,9 +395,12 @@ protected:
   virtual void visit (AST::FunctionParam &param) override;
   virtual void visit (AST::VariadicParam &param) override;
 
-  template <typename T> void visit (T &node);
+  template <typename T> void visit (T &node) { node.accept_vis (*this); }
 
-  template <typename T> void visit (std::unique_ptr<T> &node);
+  template <typename T> void visit (std::unique_ptr<T> &node)
+  {
+    node->accept_vis (*this);
+  }
 
   virtual void visit (AST::GenericArgsBinding &binding);
   virtual void visit (AST::PathExprSegment &segment);


More information about the Gcc-cvs mailing list