29 auto *thisCast =
static_cast<ConcreteType *
>(
this);
30 return TypeSwitch<Operation *, ResultType>(op)
31 .template Case<CombMemOp, MemoryPortOp, MemoryDebugPortOp,
32 MemoryPortAccessOp, SeqMemOp>(
33 [&](
auto opNode) -> ResultType {
34 return thisCast->visitCHIRRTL(opNode, args...);
36 .Default([&](
auto expr) -> ResultType {
37 return thisCast->visitInvalidCHIRRTL(op, args...);