Pchp.CodeAnalysis.Symbols.SourceRoutineSymbol.CreateGhostOverload C# (CSharp) Method

CreateGhostOverload() protected method

Creates ghost stub that calls current method.
protected CreateGhostOverload ( PEModuleBuilder module, DiagnosticBag diagnostic, TypeSymbol ghostreturn, IEnumerable ghostparams, MethodSymbol explicitOverride = null ) : void
module PEModuleBuilder
diagnostic DiagnosticBag
ghostreturn TypeSymbol
ghostparams IEnumerable
explicitOverride MethodSymbol
return void
        protected void CreateGhostOverload(PEModuleBuilder module, DiagnosticBag diagnostic,
            TypeSymbol ghostreturn, IEnumerable<ParameterSymbol> ghostparams,
            MethodSymbol explicitOverride = null)
        {
            var ghost = new SynthesizedMethodSymbol(
                this.ContainingType, this.Name, this.IsStatic, explicitOverride != null, ghostreturn, this.DeclaredAccessibility)
            {
                ExplicitOverride = explicitOverride,
            };

            ghost.SetParameters(ghostparams.Select(p =>
                new SynthesizedParameterSymbol(ghost, p.Type, p.Ordinal, p.RefKind, p.Name)).ToArray());

            // save method symbol to module
            module.SynthesizedManager.AddMethod(this.ContainingType, ghost);

            // generate method body
            GenerateGhostBody(module, diagnostic, ghost);
        }

Same methods

SourceRoutineSymbol::CreateGhostOverload ( PEModuleBuilder module, DiagnosticBag diagnostic, int pcount ) : void