protected virtual void VisitFunction(BoundFunction node)
{
switch (node.Kind)
{
case BoundNodeKind.FunctionDeclaration:
VisitFunctionDeclaration((BoundFunctionDeclaration) node);
break;
case BoundNodeKind.FunctionDefinition:
VisitFunctionDefinition((BoundFunctionDefinition) node);
break;
default:
throw new InvalidOperationException(node.Kind.ToString());
}
}