public override void VisitFunctionTypeToken(FunctionTypeToken functionTypeToken) { if (functionTypeToken.ReturnTypeToken.Kind != SyntaxKind.VoidKeyword) { Writer.Write("Func<"); } else { Writer.Write("Action<"); } var parameters = functionTypeToken.Parameters.ToList(); for (var i = 0; i < parameters.Count; i++) { switch (parameters[i]) { case Parameter parameter: Visit(parameter.TypeToken); break; default: throw new InvalidOperationException("Unsupported function parameter kind: " + parameters[i].Kind.ToString()); } if (i + 1 < parameters.Count) { Writer.Write(", "); } } if (functionTypeToken.ReturnTypeToken.Kind != SyntaxKind.VoidKeyword) { if (parameters.Count > 0) { Writer.Write(", "); } Visit(functionTypeToken.ReturnTypeToken); } Writer.Write(">"); }
public virtual void VisitFunctionTypeToken(FunctionTypeToken functionTypeToken) { }