public override Expression VisitParameter(Parameter parameter)
{
if (parameter == null) return null;
Write("{0}", GetParameterDirection(parameter.Flags));
this.VisitTypeReference(parameter.Type);
Write(" ");
if (parameter.DefaultValue != null)
throw new ArgumentException("Unexpected parameter default value");
Write("{0}", parameter.Name.Name);
return parameter;
}