mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-30 07:14:09 +08:00
gccrs: collector: Make visitors public
Make all trivial visitor functions public so we could easily call the collection of an ast's subtree from any node. gcc/rust/ChangeLog: * ast/rust-ast-collector.h: Make trivial visitors public. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
This commit is contained in:
parent
f888077249
commit
5c20c980f7
@ -41,22 +41,6 @@ public:
|
||||
private:
|
||||
std::vector<TokenPtr> &tokens;
|
||||
|
||||
/**
|
||||
* Compatibility layer for using the visitor pattern on polymorphic classes
|
||||
* with a unified overload syntax. This allows us to call `visit` both on
|
||||
* types implementing `accept_vis` method and for classes for which the
|
||||
* `visit` method is directly implemented.
|
||||
*/
|
||||
template <typename T> void visit (std::unique_ptr<T> &node)
|
||||
{
|
||||
node->accept_vis (*this);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see visit<std::unique_ptr<T>>
|
||||
*/
|
||||
template <typename T> void visit (T &node);
|
||||
|
||||
/**
|
||||
* Visit all items in given @collection, placing the separator in between but
|
||||
* not at the end.
|
||||
@ -106,6 +90,24 @@ private:
|
||||
void visit_closure_common (ClosureExpr &expr);
|
||||
|
||||
void visit_loop_common (BaseLoopExpr &expr);
|
||||
|
||||
public:
|
||||
/**
|
||||
* Compatibility layer for using the visitor pattern on polymorphic classes
|
||||
* with a unified overload syntax. This allows us to call `visit` both on
|
||||
* types implementing `accept_vis` method and for classes for which the
|
||||
* `visit` method is directly implemented.
|
||||
*/
|
||||
template <typename T> void visit (std::unique_ptr<T> &node)
|
||||
{
|
||||
node->accept_vis (*this);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see visit<std::unique_ptr<T>>
|
||||
*/
|
||||
template <typename T> void visit (T &node);
|
||||
|
||||
void visit (LoopLabel &label);
|
||||
|
||||
void visit (Literal &lit, Location locus = {});
|
||||
|
Loading…
Reference in New Issue
Block a user