| 234 | |
| 235 | template <typename Range> |
| 236 | constexpr bool recursiveSymmetric(Range const &range) |
| 237 | { |
| 238 | Id<int32_t> i; |
| 239 | Id<SubrangeT<Range const>> subrange; |
| 240 | return match(range)( |
| 241 | // clang-format off |
| 242 | pattern | ds(i, subrange.at(ooo), i) = [&] { return recursiveSymmetric(*subrange); }, |
| 243 | pattern | ds(i, subrange.at(ooo), _) = expr(false), |
| 244 | pattern | _ = expr(true) |
| 245 | // clang-format on |
| 246 | ); |
| 247 | } |
| 248 | |
| 249 | TEST(Ds, subrangeOooBinder) |
| 250 | { |