[flang] Add some missing Walk functions.
authorTim Keith <tkeith@nvidia.com>
Sun, 25 Feb 2018 15:35:56 +0000 (07:35 -0800)
committerGitHub <noreply@github.com>
Mon, 26 Feb 2018 22:52:27 +0000 (14:52 -0800)
The classes in parse-tree.h that used WRAPPER_CLASS_BOILERPLATE were
accidentally omitted.

Also remove the anonymous namespace around utilities like
WalkWrapperClass as they can be useful outside this file too.

Original-commit: flang-compiler/f18@d47c505441f6a4baec1345839a53abaf1b9fe668
Reviewed-on: https://github.com/flang-compiler/f18/pull/15
Tree-same-pre-rewrite: false

flang/lib/parser/parse-tree-visitor.h

index 8aac2e0..5808d6e 100644 (file)
@@ -18,8 +18,6 @@
 namespace Fortran {
 namespace parser {
 
-namespace {
-
 // Apply func to each member of tuple.
 template<size_t I = 0, typename Func, typename... Ts>  // clang-format off
 typename std::enable_if<I == sizeof...(Ts)>::type
@@ -84,8 +82,6 @@ template<typename T, typename V> void WalkUnionClass(const T &x, V &visitor) {
   }
 }
 
-}  // namespace
-
 template<typename T, typename V> void Walk(const Scalar<T> &x, V &visitor) {
   Walk(x.thing, visitor);
 }
@@ -152,6 +148,10 @@ template<typename V> void Walk(const AccessId &x, V &visitor) {
   WalkUnionClass(x, visitor);
 }
 
+template<typename V> void Walk(const AccessSpec &x, V &visitor) {
+  WalkWrapperClass(x, visitor);
+}
+
 template<typename V> void Walk(const AccessStmt &x, V &visitor) {
   WalkTupleClass(x, visitor);
 }
@@ -232,6 +232,10 @@ template<typename V> void Walk(const ArrayElement &x, V &visitor) {
   }
 }
 
+template<typename V> void Walk(const ArraySection &x, V &visitor) {
+  WalkWrapperClass(x, visitor);
+}
+
 template<typename V> void Walk(const ArraySpec &x, V &visitor) {
   WalkUnionClass(x, visitor);
 }
@@ -398,6 +402,10 @@ template<typename V> void Walk(const CharVariable &x, V &visitor) {
   WalkWrapperClass(x, visitor);
 }
 
+template<typename V> void Walk(const CloseStmt &x, V &visitor) {
+  WalkWrapperClass(x, visitor);
+}
+
 template<typename V> void Walk(const CloseStmt::CloseSpec &x, V &visitor) {
   WalkUnionClass(x, visitor);
 }
@@ -442,6 +450,10 @@ template<typename V> void Walk(const ComplexPart &x, V &visitor) {
   WalkUnionClass(x, visitor);
 }
 
+template<typename V> void Walk(const ComplexPartDesignator &x, V &visitor) {
+  WalkWrapperClass(x, visitor);
+}
+
 template<typename V> void Walk(const ComponentArraySpec &x, V &visitor) {
   WalkUnionClass(x, visitor);
 }
@@ -618,6 +630,10 @@ template<typename V> void Walk(const Designator &x, V &visitor) {
   WalkUnionClass(x, visitor);
 }
 
+template<typename V> void Walk(const DimensionStmt &x, V &visitor) {
+  WalkWrapperClass(x, visitor);
+}
+
 template<typename V>
 void Walk(const DimensionStmt::Declaration &x, V &visitor) {
   WalkTupleClass(x, visitor);
@@ -1075,6 +1091,10 @@ template<typename V> void Walk(const GotoStmt &x, V &visitor) {
   WalkWrapperClass(x, visitor);
 }
 
+template<typename V> void Walk(const HollerithLiteralConstant &x, V &visitor) {
+  WalkWrapperClass(x, visitor);
+}
+
 template<typename V> void Walk(const IdExpr &x, V &visitor) {
   WalkWrapperClass(x, visitor);
 }
@@ -1195,6 +1215,10 @@ template<typename V> void Walk(const IntegerTypeSpec &x, V &visitor) {
   WalkWrapperClass(x, visitor);
 }
 
+template<typename V> void Walk(const IntentSpec &x, V &visitor) {
+  WalkWrapperClass(x, visitor);
+}
+
 template<typename V> void Walk(const IntentStmt &x, V &visitor) {
   WalkTupleClass(x, visitor);
 }
@@ -1308,6 +1332,10 @@ template<typename V> void Walk(const KindParam &x, V &visitor) {
   WalkUnionClass(x, visitor);
 }
 
+template<typename V> void Walk(const KindSelector &x, V &visitor) {
+  WalkWrapperClass(x, visitor);
+}
+
 template<typename V> void Walk(const LabelDoStmt &x, V &visitor) {
   WalkTupleClass(x, visitor);
 }
@@ -1408,6 +1436,10 @@ template<typename V> void Walk(const NamedConstantDef &x, V &visitor) {
   WalkTupleClass(x, visitor);
 }
 
+template<typename V> void Walk(const NamelistStmt &x, V &visitor) {
+  WalkWrapperClass(x, visitor);
+}
+
 template<typename V> void Walk(const NamelistStmt::Group &x, V &visitor) {
   WalkTupleClass(x, visitor);
 }
@@ -1867,6 +1899,10 @@ template<typename V> void Walk(const TypeParamDefStmt &x, V &visitor) {
   WalkTupleClass(x, visitor);
 }
 
+template<typename V> void Walk(const TypeParamInquiry &x, V &visitor) {
+  WalkWrapperClass(x, visitor);
+}
+
 template<typename V> void Walk(const TypeParamSpec &x, V &visitor) {
   WalkTupleClass(x, visitor);
 }