Mono.CSharp.MethodOrOperator.Emit C# (CSharp) Method

Emit() public method

public Emit ( ) : void
return void
        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;
        }