public override void Emit()
{
if ((ModFlags & Modifiers.COMPILER_GENERATED) != 0 && !Parent.IsCompilerGenerated)
Module.PredefinedAttributes.CompilerGenerated.EmitAttribute (MethodBuilder);
if ((ModFlags & Modifiers.DEBUGGER_HIDDEN) != 0)
Module.PredefinedAttributes.DebuggerHidden.EmitAttribute (MethodBuilder);
if (ReturnType == InternalType.Dynamic) {
return_attributes = new ReturnParameter (this, MethodBuilder, Location);
Module.PredefinedAttributes.Dynamic.EmitAttribute (return_attributes.Builder);
} else if (ReturnType.HasDynamicElement) {
return_attributes = new ReturnParameter (this, MethodBuilder, Location);
Module.PredefinedAttributes.Dynamic.EmitAttribute (return_attributes.Builder, ReturnType, Location);
}
if (OptAttributes != null)
OptAttributes.Emit ();
// if (declarative_security != null) {
// foreach (var de in declarative_security) {
//#if STATIC
// MethodBuilder.__AddDeclarativeSecurity (de);
//#else
// MethodBuilder.AddDeclarativeSecurity (de.Key, de.Value);
//#endif
// }
// }
if (MethodData != null)
MethodData.Emit (Parent);
base.Emit ();
Block = null;
MethodData = null;
}