@@ -69,7 +69,8 @@ static Fortran::lower::SomeExpr ignoreEvConvert(const A &x) {
6969inline Fortran::lower::SomeExpr
7070ignoreEvConvert (const Fortran::evaluate::Expr<Fortran::evaluate::Type<
7171 Fortran::common::TypeCategory::Integer, 8 >> &x) {
72- return std::visit ([](const auto &v) { return ignoreEvConvert (v); }, x.u );
72+ return Fortran::common::visit (
73+ [](const auto &v) { return ignoreEvConvert (v); }, x.u );
7374}
7475
7576// / Zip two containers of the same size together and flatten the pairs. `flatZip
@@ -119,7 +120,8 @@ class HashEvaluateExpr {
119120 return 0u ;
120121 }
121122 static unsigned getHashValue (const Fortran::evaluate::Subscript &x) {
122- return std::visit ([&](const auto &v) { return getHashValue (v); }, x.u );
123+ return Fortran::common::visit (
124+ [&](const auto &v) { return getHashValue (v); }, x.u );
123125 }
124126 static unsigned getHashValue (const Fortran::evaluate::Triplet &x) {
125127 return getHashValue (x.lower ()) - getHashValue (x.upper ()) * 5u -
@@ -154,7 +156,8 @@ class HashEvaluateExpr {
154156 return getHashValue (x.GetComponent ()) * 13u ;
155157 }
156158 static unsigned getHashValue (const Fortran::evaluate::DataRef &x) {
157- return std::visit ([&](const auto &v) { return getHashValue (v); }, x.u );
159+ return Fortran::common::visit (
160+ [&](const auto &v) { return getHashValue (v); }, x.u );
158161 }
159162 static unsigned getHashValue (const Fortran::evaluate::ComplexPart &x) {
160163 return getHashValue (x.complex ()) - static_cast <unsigned >(x.part ());
@@ -247,8 +250,9 @@ class HashEvaluateExpr {
247250 return getHashValue (sym.get ());
248251 }
249252 static unsigned getHashValue (const Fortran::evaluate::Substring &x) {
250- return 61u * std::visit ([&](const auto &p) { return getHashValue (p); },
251- x.parent ()) -
253+ return 61u *
254+ Fortran::common::visit (
255+ [&](const auto &p) { return getHashValue (p); }, x.parent ()) -
252256 getHashValue (x.lower ()) - (getHashValue (x.lower ()) + 1u );
253257 }
254258 static unsigned
@@ -270,7 +274,8 @@ class HashEvaluateExpr {
270274 }
271275 static unsigned
272276 getHashValue (const Fortran::evaluate::ProcedureDesignator &x) {
273- return std::visit ([&](const auto &v) { return getHashValue (v); }, x.u );
277+ return Fortran::common::visit (
278+ [&](const auto &v) { return getHashValue (v); }, x.u );
274279 }
275280 static unsigned getHashValue (const Fortran::evaluate::ProcedureRef &x) {
276281 unsigned args = 13u ;
@@ -321,15 +326,18 @@ class HashEvaluateExpr {
321326 }
322327 template <typename A>
323328 static unsigned getHashValue (const Fortran::evaluate::Expr<A> &x) {
324- return std::visit ([&](const auto &v) { return getHashValue (v); }, x.u );
329+ return Fortran::common::visit (
330+ [&](const auto &v) { return getHashValue (v); }, x.u );
325331 }
326332 static unsigned getHashValue (
327333 const Fortran::evaluate::Relational<Fortran::evaluate::SomeType> &x) {
328- return std::visit ([&](const auto &v) { return getHashValue (v); }, x.u );
334+ return Fortran::common::visit (
335+ [&](const auto &v) { return getHashValue (v); }, x.u );
329336 }
330337 template <typename A>
331338 static unsigned getHashValue (const Fortran::evaluate::Designator<A> &x) {
332- return std::visit ([&](const auto &v) { return getHashValue (v); }, x.u );
339+ return Fortran::common::visit (
340+ [&](const auto &v) { return getHashValue (v); }, x.u );
333341 }
334342 template <int BITS>
335343 static unsigned
@@ -378,7 +386,7 @@ class IsEqualEvaluateExpr {
378386 }
379387 static bool isEqual (const Fortran::evaluate::Subscript &x,
380388 const Fortran::evaluate::Subscript &y) {
381- return std ::visit (
389+ return Fortran::common ::visit (
382390 [&](const auto &v, const auto &w) { return isEqual (v, w); }, x.u , y.u );
383391 }
384392 static bool isEqual (const Fortran::evaluate::Triplet &x,
@@ -411,7 +419,7 @@ class IsEqualEvaluateExpr {
411419 }
412420 static bool isEqual (const Fortran::evaluate::DataRef &x,
413421 const Fortran::evaluate::DataRef &y) {
414- return std ::visit (
422+ return Fortran::common ::visit (
415423 [&](const auto &v, const auto &w) { return isEqual (v, w); }, x.u , y.u );
416424 }
417425 static bool isEqual (const Fortran::evaluate::ComplexPart &x,
@@ -499,7 +507,7 @@ class IsEqualEvaluateExpr {
499507 }
500508 static bool isEqual (const Fortran::evaluate::Substring &x,
501509 const Fortran::evaluate::Substring &y) {
502- return std ::visit (
510+ return Fortran::common ::visit (
503511 [&](const auto &p, const auto &q) { return isEqual (p, q); },
504512 x.parent (), y.parent ()) &&
505513 isEqual (x.lower (), y.lower ()) && isEqual (x.upper (), y.upper ());
@@ -529,7 +537,7 @@ class IsEqualEvaluateExpr {
529537 }
530538 static bool isEqual (const Fortran::evaluate::ProcedureDesignator &x,
531539 const Fortran::evaluate::ProcedureDesignator &y) {
532- return std ::visit (
540+ return Fortran::common ::visit (
533541 [&](const auto &v, const auto &w) { return isEqual (v, w); }, x.u , y.u );
534542 }
535543 static bool isEqual (const Fortran::evaluate::ProcedureRef &x,
@@ -591,19 +599,19 @@ class IsEqualEvaluateExpr {
591599 template <typename A>
592600 static bool isEqual (const Fortran::evaluate::Expr<A> &x,
593601 const Fortran::evaluate::Expr<A> &y) {
594- return std ::visit (
602+ return Fortran::common ::visit (
595603 [&](const auto &v, const auto &w) { return isEqual (v, w); }, x.u , y.u );
596604 }
597605 static bool
598606 isEqual (const Fortran::evaluate::Relational<Fortran::evaluate::SomeType> &x,
599607 const Fortran::evaluate::Relational<Fortran::evaluate::SomeType> &y) {
600- return std ::visit (
608+ return Fortran::common ::visit (
601609 [&](const auto &v, const auto &w) { return isEqual (v, w); }, x.u , y.u );
602610 }
603611 template <typename A>
604612 static bool isEqual (const Fortran::evaluate::Designator<A> &x,
605613 const Fortran::evaluate::Designator<A> &y) {
606- return std ::visit (
614+ return Fortran::common ::visit (
607615 [&](const auto &v, const auto &w) { return isEqual (v, w); }, x.u , y.u );
608616 }
609617 template <int BITS>
0 commit comments