internal static SignatureHelper GetMethodSigHelper(
Module?scope, CallingConventions callingConvention, int cGenericParam,
Type?returnType, Type[]?requiredReturnTypeCustomModifiers, Type[]?optionalReturnTypeCustomModifiers,
Type[]?parameterTypes, Type[][]?requiredParameterTypeCustomModifiers, Type[][]?optionalParameterTypeCustomModifiers)
{
SignatureHelper sigHelp;
MdSigCallingConvention intCall;
returnType ??= typeof(void);
intCall = MdSigCallingConvention.Default;
if ((callingConvention & CallingConventions.VarArgs) == CallingConventions.VarArgs)
{
intCall = MdSigCallingConvention.Vararg;
}
if (cGenericParam > 0)
{
intCall |= MdSigCallingConvention.Generic;
}
if ((callingConvention & CallingConventions.HasThis) == CallingConventions.HasThis)
{
intCall |= MdSigCallingConvention.HasThis;
}
sigHelp = new SignatureHelper(scope, intCall, cGenericParam, returnType,
requiredReturnTypeCustomModifiers, optionalReturnTypeCustomModifiers);
sigHelp.AddArguments(parameterTypes, requiredParameterTypeCustomModifiers, optionalParameterTypeCustomModifiers);
return(sigHelp);
}