@@ -69,7 +69,8 @@ static Fortran::lower::SomeExpr ignoreEvConvert(const A &x) {
69
69
inline Fortran::lower::SomeExpr
70
70
ignoreEvConvert (const Fortran::evaluate::Expr<Fortran::evaluate::Type<
71
71
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 );
73
74
}
74
75
75
76
// / Zip two containers of the same size together and flatten the pairs. `flatZip
@@ -119,7 +120,8 @@ class HashEvaluateExpr {
119
120
return 0u ;
120
121
}
121
122
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 );
123
125
}
124
126
static unsigned getHashValue (const Fortran::evaluate::Triplet &x) {
125
127
return getHashValue (x.lower ()) - getHashValue (x.upper ()) * 5u -
@@ -154,7 +156,8 @@ class HashEvaluateExpr {
154
156
return getHashValue (x.GetComponent ()) * 13u ;
155
157
}
156
158
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 );
158
161
}
159
162
static unsigned getHashValue (const Fortran::evaluate::ComplexPart &x) {
160
163
return getHashValue (x.complex ()) - static_cast <unsigned >(x.part ());
@@ -247,8 +250,9 @@ class HashEvaluateExpr {
247
250
return getHashValue (sym.get ());
248
251
}
249
252
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 ()) -
252
256
getHashValue (x.lower ()) - (getHashValue (x.lower ()) + 1u );
253
257
}
254
258
static unsigned
@@ -270,7 +274,8 @@ class HashEvaluateExpr {
270
274
}
271
275
static unsigned
272
276
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 );
274
279
}
275
280
static unsigned getHashValue (const Fortran::evaluate::ProcedureRef &x) {
276
281
unsigned args = 13u ;
@@ -321,15 +326,18 @@ class HashEvaluateExpr {
321
326
}
322
327
template <typename A>
323
328
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 );
325
331
}
326
332
static unsigned getHashValue (
327
333
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 );
329
336
}
330
337
template <typename A>
331
338
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 );
333
341
}
334
342
template <int BITS>
335
343
static unsigned
@@ -378,7 +386,7 @@ class IsEqualEvaluateExpr {
378
386
}
379
387
static bool isEqual (const Fortran::evaluate::Subscript &x,
380
388
const Fortran::evaluate::Subscript &y) {
381
- return std ::visit (
389
+ return Fortran::common ::visit (
382
390
[&](const auto &v, const auto &w) { return isEqual (v, w); }, x.u , y.u );
383
391
}
384
392
static bool isEqual (const Fortran::evaluate::Triplet &x,
@@ -411,7 +419,7 @@ class IsEqualEvaluateExpr {
411
419
}
412
420
static bool isEqual (const Fortran::evaluate::DataRef &x,
413
421
const Fortran::evaluate::DataRef &y) {
414
- return std ::visit (
422
+ return Fortran::common ::visit (
415
423
[&](const auto &v, const auto &w) { return isEqual (v, w); }, x.u , y.u );
416
424
}
417
425
static bool isEqual (const Fortran::evaluate::ComplexPart &x,
@@ -499,7 +507,7 @@ class IsEqualEvaluateExpr {
499
507
}
500
508
static bool isEqual (const Fortran::evaluate::Substring &x,
501
509
const Fortran::evaluate::Substring &y) {
502
- return std ::visit (
510
+ return Fortran::common ::visit (
503
511
[&](const auto &p, const auto &q) { return isEqual (p, q); },
504
512
x.parent (), y.parent ()) &&
505
513
isEqual (x.lower (), y.lower ()) && isEqual (x.upper (), y.upper ());
@@ -529,7 +537,7 @@ class IsEqualEvaluateExpr {
529
537
}
530
538
static bool isEqual (const Fortran::evaluate::ProcedureDesignator &x,
531
539
const Fortran::evaluate::ProcedureDesignator &y) {
532
- return std ::visit (
540
+ return Fortran::common ::visit (
533
541
[&](const auto &v, const auto &w) { return isEqual (v, w); }, x.u , y.u );
534
542
}
535
543
static bool isEqual (const Fortran::evaluate::ProcedureRef &x,
@@ -591,19 +599,19 @@ class IsEqualEvaluateExpr {
591
599
template <typename A>
592
600
static bool isEqual (const Fortran::evaluate::Expr<A> &x,
593
601
const Fortran::evaluate::Expr<A> &y) {
594
- return std ::visit (
602
+ return Fortran::common ::visit (
595
603
[&](const auto &v, const auto &w) { return isEqual (v, w); }, x.u , y.u );
596
604
}
597
605
static bool
598
606
isEqual (const Fortran::evaluate::Relational<Fortran::evaluate::SomeType> &x,
599
607
const Fortran::evaluate::Relational<Fortran::evaluate::SomeType> &y) {
600
- return std ::visit (
608
+ return Fortran::common ::visit (
601
609
[&](const auto &v, const auto &w) { return isEqual (v, w); }, x.u , y.u );
602
610
}
603
611
template <typename A>
604
612
static bool isEqual (const Fortran::evaluate::Designator<A> &x,
605
613
const Fortran::evaluate::Designator<A> &y) {
606
- return std ::visit (
614
+ return Fortran::common ::visit (
607
615
[&](const auto &v, const auto &w) { return isEqual (v, w); }, x.u , y.u );
608
616
}
609
617
template <int BITS>
0 commit comments