public virtual void PrepareEmit ()
{
var mb = MethodData.DefineMethodBuilder (Parent);
if (CurrentTypeParameters != null) {
string[] gnames = new string[CurrentTypeParameters.Count];
for (int i = 0; i < gnames.Length; ++i) {
gnames[i] = CurrentTypeParameters[i].Name;
}
var gen_params = MethodBuilder.DefineGenericParameters (gnames);
for (int i = 0; i < CurrentTypeParameters.Count; ++i) {
var tp = CurrentTypeParameters[i];
tp.Define (gen_params[i]);
}
}
//
// Generic method has been already defined to resolve method parameters
// correctly when they use type parameters
//
mb.SetParameters (parameters.GetMetaInfo ());
mb.SetReturnType (ReturnType.GetMetaInfo ());
}