ASTVisitor.dynamicDispatch
void dynamicDispatch(const ExpressionNode n)Looks at the runtime type of n, then calls the appropriate visit method at runtime.
Rule of thumb: when the type is an abstract class, use dynamicDispatch, otherwise use visit.
For templated calls:
static if (__traits(isAbstractClass, typeof(node)))
visitor.dynamicDispatch(node);
else
visitor.visit(node);void dynamicDispatch(const InterpolatedStringPart n)ditto