protected override string VisitGenericMethod(GenericMethodInfoSlim method)
        {
            var map   = method.GenericMethodDefinition.GenericParameterTypes.Zip(method.GenericArguments, (p, a) => (p, a)).ToDictionary(pa => pa.p, pa => pa.a);
            var subst = new GenericParameterTypeSubstPrinter(map);

            var declaringType        = _typePrinter.Visit(method.DeclaringType);
            var parameterTypes       = string.Join(", ", subst.Visit(method.GenericMethodDefinition.ParameterTypes));
            var returnType           = subst.Visit(method.GenericMethodDefinition.ReturnType);
            var genericArgumentTypes = string.Join(", ", _typePrinter.Visit(method.GenericArguments));

            return(string.Format(CultureInfo.InvariantCulture, "{3} {0}.{1}<{4}>({2})", declaringType, method.GenericMethodDefinition.Name, parameterTypes, returnType, genericArgumentTypes));
        }
 protected override string MakeGenericMethod(GenericMethodInfoSlim method, string methodDefinition)
 {
     throw new NotImplementedException();
 }