2 interfaces inheriting from IMethodDefinition
Microsoft.CodeAnalysis (2)
Emit\EditAndContinue\IDeletedMethodDefinition.cs (1)
9internal interface IDeletedMethodDefinition : Cci.IMethodDefinition
PEWriter\Members.cs (1)
981internal interface IGlobalMethodDefinition : IMethodDefinition
3 implementations of IMethodDefinition
Microsoft.CodeAnalysis (3)
Emit\NoPia\CommonEmbeddedMethod.cs (1)
40internal abstract class CommonEmbeddedMethod : CommonEmbeddedMember<TMethodSymbol>, Cci.IMethodDefinition
Emit\NoPia\VtblGap.cs (1)
12internal sealed class VtblGap : Cci.IEmbeddedDefinition, Cci.IMethodDefinition
PEWriter\MethodDefinitionBase.cs (1)
17internal abstract class MethodDefinitionBase : IMethodDefinition, IMethodBody
215 references to IMethodDefinition
Microsoft.CodeAnalysis (215)
CodeGen\ArrayMembers.cs (1)
326public Cci.IMethodDefinition? GetResolvedMethod(EmitContext context) => null;
CodeGen\MethodBody.cs (3)
18private readonly Cci.IMethodDefinition _parent; 54Cci.IMethodDefinition parent, 128Cci.IMethodDefinition Cci.IMethodBody.MethodDefinition => _parent;
CodeGen\PrivateImplementationDetails.cs (21)
89private ImmutableArray<Cci.IMethodDefinition> _orderedSynthesizedMethods; 90private readonly ConcurrentDictionary<string, Cci.IMethodDefinition> _synthesizedMethods = 91new ConcurrentDictionary<string, Cci.IMethodDefinition>(); 347Cci.IMethodDefinition bytesToStringHelper = @this.GetOrSynthesizeBytesToStringHelper(diagnostics); 374private Cci.IMethodDefinition GetOrSynthesizeBytesToStringHelper(DiagnosticBag diagnostics) 376var method = GetMethod(SynthesizedBytesToStringFunctionName); 452internal bool TryAddSynthesizedMethod(Cci.IMethodDefinition method) 466public override IEnumerable<Cci.IMethodDefinition> GetMethods(EmitContext context) 472public IEnumerable<Cci.IMethodDefinition> GetTopLevelAndNestedTypeMethods(EmitContext context) 477foreach (var method in type.GetMethods(context)) 484foreach (var method in nestedType.GetMethods(context)) 493internal Cci.IMethodDefinition? GetMethod(string name) 495Cci.IMethodDefinition? method; 732private readonly ImmutableArray<Cci.IMethodDefinition> _methods; 738Cci.IMethodDefinition bytesToStringHelper, 746var staticConstructor = synthesizeStaticConstructor(containingType.ModuleBuilder, this, dataField, stringField, bytesToStringHelper, diagnostics); 751static Cci.IMethodDefinition synthesizeStaticConstructor( 756Cci.IMethodDefinition bytesToStringHelper, 794public override IEnumerable<Cci.IMethodDefinition> GetMethods(EmitContext context) => _methods; 1066public virtual IEnumerable<Cci.IMethodDefinition> GetMethods(EmitContext context) 1067=> SpecializedCollections.EmptyEnumerable<Cci.IMethodDefinition>();
DiaSymReader\Writer\SymUnmanagedWriter.cs (1)
145public abstract void DefineCustomMetadata(byte[] metadata, IMethodDefinition methodDefinition);
DiaSymReader\Writer\SymUnmanagedWriterImpl.cs (1)
540public override unsafe void DefineCustomMetadata(byte[] metadata, IMethodDefinition methodDefinition)
Emit\AsyncMoveNextBodyDebugInfo.cs (1)
34Cci.IMethodDefinition kickoffMethod,
Emit\CommonPEModuleBuilder.cs (9)
50private IReadOnlyDictionary<Cci.ITypeDefinition, ArrayBuilder<Cci.IMethodDefinition>>? _encDeletedMethodDefinitions; 136public IReadOnlyDictionary<Cci.ITypeDefinition, ArrayBuilder<Cci.IMethodDefinition>> GetDeletedMethodDefinitions() 846Cci.IMethodDefinition cctor = CreatePrivateImplementationDetailsStaticConstructor(syntaxOpt, diagnostics); 853protected abstract Cci.IMethodDefinition CreatePrivateImplementationDetailsStaticConstructor(TSyntaxNode syntaxOpt, DiagnosticBag diagnostics); 864public ConcurrentQueue<Cci.IMethodDefinition> Methods; 906foreach (var method in Methods) 971public virtual void AddSynthesizedDefinition(TNamedTypeSymbol container, Cci.IMethodDefinition method) 978Interlocked.CompareExchange(ref defs.Methods, new ConcurrentQueue<Cci.IMethodDefinition>(), null); 1044public IEnumerable<Cci.IMethodDefinition> GetSynthesizedMethods(TNamedTypeSymbol container)
Emit\EditAndContinue\DefinitionMap.cs (6)
140var methodDef = (Cci.IMethodDefinition)method.GetCciAdapter(); 148var mappedDef = (Cci.IMethodDefinition?)SourceToPreviousSymbolMatcher.MapDefinition(methodDef); 171var oldMethodDef = (Cci.IMethodDefinition)oldMethod.GetCciAdapter();
Emit\EditAndContinue\DeletedMethodBody.cs (1)
30public Cci.IMethodDefinition MethodDefinition => _methodDef;
Emit\EditAndContinue\DeletedPEMethodDefinition.cs (1)
170public Cci.IMethodDefinition GetResolvedMethod(EmitContext context)
Emit\EditAndContinue\DeletedSourceGenericParameter.cs (1)
23public IMethodDefinition DefiningMethod => _method;
Emit\EditAndContinue\DeletedSourceMethodDefinition.cs (3)
15: DeletedSourceDefinition<IMethodDefinition>, IDeletedMethodDefinition 21public DeletedSourceMethodDefinition(IMethodDefinition oldMethod, MethodDefinitionHandle handle, ImmutableArray<byte> bodyIL, Dictionary<ITypeDefinition, DeletedSourceTypeDefinition> typesUsedByDeletedMembers) 127public IMethodDefinition GetResolvedMethod(EmitContext context)
Emit\EditAndContinue\DeletedSourceTypeDefinition.cs (1)
119public IEnumerable<IMethodDefinition> GetMethods(EmitContext context)
Emit\EditAndContinue\DeltaMetadataWriter.cs (39)
35private readonly Dictionary<ITypeDefinition, ImmutableArray<IMethodDefinition>> _deletedTypeMembers; 36private readonly IReadOnlyDictionary<ITypeDefinition, ArrayBuilder<IMethodDefinition>> _deletedMethodDefs; 41private readonly DefinitionIndex<IMethodDefinition> _methodDefs; 44private readonly Dictionary<IParameterDefinition, IMethodDefinition> _parameterDefList; 67private readonly Dictionary<IMethodDefinition, AddedOrChangedMethodInfo> _addedOrChangedMethods; 99_deletedTypeMembers = new Dictionary<ITypeDefinition, ImmutableArray<IMethodDefinition>>(ReferenceEqualityComparer.Instance); 104_methodDefs = new DefinitionIndex<IMethodDefinition>(this.TryGetExistingMethodDefIndex, sizes[(int)TableIndex.MethodDef]); 107_parameterDefList = new Dictionary<IParameterDefinition, IMethodDefinition>(Cci.SymbolEquivalentEqualityComparer.Instance); 127_addedOrChangedMethods = new Dictionary<IMethodDefinition, AddedOrChangedMethodInfo>(Cci.SymbolEquivalentEqualityComparer.Instance); 289foreach (var def in _methodDefs.GetRows()) 367protected override bool TryGetMethodDefinitionHandle(IMethodDefinition def, out MethodDefinitionHandle handle) 374protected override MethodDefinitionHandle GetMethodDefinitionHandle(IMethodDefinition def) 377protected override IMethodDefinition GetMethodDef(MethodDefinitionHandle index) 380protected override IReadOnlyList<IMethodDefinition> GetMethodDefs() 407protected override ParameterHandle GetFirstParameterHandle(IMethodDefinition methodDef) 505internal static IReadOnlyDictionary<ITypeDefinition, ArrayBuilder<IMethodDefinition>> CreateDeletedMethodsDefs(EmitContext context, SymbolChanges changes) 507var result = new Dictionary<ITypeDefinition, ArrayBuilder<IMethodDefinition>>(ReferenceEqualityComparer.Instance); 533ArrayBuilder<IMethodDefinition>? getDeletedMethodDefs(ITypeDefinition typeDef) 541var newMethodDefs = ArrayBuilder<IMethodDefinition>.GetInstance(); 551var deletedMethodDef = (IMethodDefinition)deletedMethod.GetCciAdapter(); 563var newMethodDef = (IMethodDefinition)newMethod.GetCciAdapter(); 588var deletedClosureMethodDef = (IMethodDefinition)deletedClosureMethod.GetCciAdapter(); 662foreach (var methodDef in typeDef.GetMethods(this.Context)) 672foreach (var newMethodDef in newMethodDefs) 696var methodDef = (IMethodDefinition?)methodImpl.ImplementingMethod.AsDefinition(this.Context); 733IMethodDefinition methodDef => TryGetExistingMethodDefIndex(methodDef, out _), 740private void CreateIndicesForMethod(IMethodDefinition methodDef, SymbolChange methodChange) 784private void EmitParametersFromOriginalMetadata(IMethodDefinition methodDef, MethodDefinitionHandle handle) 801private void EmitParametersFromDelta(IMethodDefinition methodDef, MethodDefinitionHandle handle) 1197var methodDef = _parameterDefList[paramDef]; 1650private bool TryGetExistingMethodDefIndex(IMethodDefinition item, out int index) 1833private readonly IReadOnlyDictionary<ITypeDefinition, ImmutableArray<IMethodDefinition>> _deletedTypeMembers; 1872public override void Visit(IMethodDefinition method) 1882var methodDef = (IMethodDefinition?)methodImplementation.ImplementingMethod.AsDefinition(this.Context);
Emit\EditAndContinue\EmitBaseline.cs (4)
180methodsAdded: new Dictionary<Cci.IMethodDefinition, int>(), 238internal readonly IReadOnlyDictionary<Cci.IMethodDefinition, int> MethodsAdded; 301IReadOnlyDictionary<Cci.IMethodDefinition, int> methodsAdded, 400IReadOnlyDictionary<Cci.IMethodDefinition, int> methodsAdded,
Emit\IteratorMoveNextBodyDebugInfo.cs (1)
15public IteratorMoveNextBodyDebugInfo(Cci.IMethodDefinition kickoffMethod)
Emit\NoPia\CommonEmbeddedMethod.cs (27)
100Cci.IMethodBody? Cci.IMethodDefinition.GetBody(EmitContext context) 132Cci.IMethodDefinition Cci.IMethodBody.MethodDefinition => _method; 179IEnumerable<Cci.IGenericMethodParameter> Cci.IMethodDefinition.GenericParameters => _typeParameters; 181bool Cci.IMethodDefinition.HasDeclarativeSecurity => false; 183bool Cci.IMethodDefinition.IsAbstract => IsAbstract; 185bool Cci.IMethodDefinition.IsAccessCheckedOnOverride => IsAccessCheckedOnOverride; 187bool Cci.IMethodDefinition.IsConstructor => IsConstructor; 189bool Cci.IMethodDefinition.IsExternal => IsExternal; 191bool Cci.IMethodDefinition.IsHiddenBySignature => IsHiddenBySignature; 193bool Cci.IMethodDefinition.IsNewSlot => IsNewSlot; 195bool Cci.IMethodDefinition.IsPlatformInvoke => PlatformInvokeData != null; 197Cci.IPlatformInvokeInformation Cci.IMethodDefinition.PlatformInvokeData => PlatformInvokeData; 199bool Cci.IMethodDefinition.IsRuntimeSpecial => IsRuntimeSpecial; 201bool Cci.IMethodDefinition.IsSpecialName => IsSpecialName; 203bool Cci.IMethodDefinition.IsSealed => IsSealed; 205bool Cci.IMethodDefinition.IsStatic => IsStatic; 207bool Cci.IMethodDefinition.IsVirtual => IsVirtual; 209System.Reflection.MethodImplAttributes Cci.IMethodDefinition.GetImplementationAttributes(EmitContext context) 214ImmutableArray<Cci.IParameterDefinition> Cci.IMethodDefinition.Parameters 222bool Cci.IMethodDefinition.RequiresSecurityObject => false; 224IEnumerable<Cci.ICustomAttribute> Cci.IMethodDefinition.GetReturnValueAttributes(EmitContext context) 230bool Cci.IMethodDefinition.ReturnValueIsMarshalledExplicitly => ReturnValueIsMarshalledExplicitly; 232Cci.IMarshallingInformation Cci.IMethodDefinition.ReturnValueMarshallingInformation => ReturnValueMarshallingInformation; 234ImmutableArray<byte> Cci.IMethodDefinition.ReturnValueMarshallingDescriptor => ReturnValueMarshallingDescriptor; 236IEnumerable<Cci.SecurityAttribute> Cci.IMethodDefinition.SecurityAttributes => 241Cci.INamespace Cci.IMethodDefinition.ContainingNamespace => ContainingNamespace; 266Cci.IMethodDefinition Cci.IMethodReference.GetResolvedMethod(EmitContext context)
Emit\NoPia\CommonEmbeddedType.cs (3)
47private ImmutableArray<Cci.IMethodDefinition> _lazyMethods; 442IEnumerable<Cci.IMethodDefinition> Cci.ITypeDefinition.GetMethods(EmitContext context) 448var builder = ArrayBuilder<Cci.IMethodDefinition>.GetInstance();
Emit\NoPia\CommonEmbeddedTypeParameter.cs (1)
61Cci.IMethodDefinition Cci.IGenericMethodParameter.DefiningMethod
Emit\NoPia\VtblGap.cs (28)
26bool Cci.IMethodDefinition.HasBody 29Cci.IMethodBody? Cci.IMethodDefinition.GetBody(EmitContext context) 34IEnumerable<Cci.IGenericMethodParameter> Cci.IMethodDefinition.GenericParameters 39bool Cci.IMethodDefinition.HasDeclarativeSecurity 44bool Cci.IMethodDefinition.IsAbstract 49bool Cci.IMethodDefinition.IsAccessCheckedOnOverride 54bool Cci.IMethodDefinition.IsConstructor 59bool Cci.IMethodDefinition.IsExternal 64bool Cci.IMethodDefinition.IsHiddenBySignature 69bool Cci.IMethodDefinition.IsNewSlot 74bool Cci.IMethodDefinition.IsPlatformInvoke 79bool Cci.IMethodDefinition.IsRuntimeSpecial 84bool Cci.IMethodDefinition.IsSealed 89bool Cci.IMethodDefinition.IsSpecialName 94bool Cci.IMethodDefinition.IsStatic 99bool Cci.IMethodDefinition.IsVirtual 104System.Reflection.MethodImplAttributes Cci.IMethodDefinition.GetImplementationAttributes(EmitContext context) 109ImmutableArray<Cci.IParameterDefinition> Cci.IMethodDefinition.Parameters 114Cci.IPlatformInvokeInformation Cci.IMethodDefinition.PlatformInvokeData 119bool Cci.IMethodDefinition.RequiresSecurityObject 124IEnumerable<Cci.ICustomAttribute> Cci.IMethodDefinition.GetReturnValueAttributes(EmitContext context) 129bool Cci.IMethodDefinition.ReturnValueIsMarshalledExplicitly 134Cci.IMarshallingInformation Cci.IMethodDefinition.ReturnValueMarshallingInformation 139ImmutableArray<byte> Cci.IMethodDefinition.ReturnValueMarshallingDescriptor 144IEnumerable<Cci.SecurityAttribute> Cci.IMethodDefinition.SecurityAttributes 154Cci.INamespace Cci.IMethodDefinition.ContainingNamespace 180visitor.Visit((Cci.IMethodDefinition)this); 205Cci.IMethodDefinition Cci.IMethodReference.GetResolvedMethod(EmitContext context)
Emit\StateMachineMoveNextDebugInfo.cs (2)
19public readonly Cci.IMethodDefinition KickoffMethod; 21public StateMachineMoveNextBodyDebugInfo(Cci.IMethodDefinition kickoffMethod)
NativePdbWriter\PdbWriter.cs (2)
115if (customDebugInfoWriter.ShouldForwardNamespaceScopes(Context, methodBody, methodHandle, out IMethodDefinition forwardToMethod)) 161IMethodDefinition method = methodBody.MethodDefinition;
NativePdbWriter\SymWriterMetadataProvider.cs (1)
72IMethodDefinition m = _writer.GetMethodDefinition(methodDefinitionToken);
PEWriter\CustomDebugInfoWriter.cs (1)
42public bool ShouldForwardNamespaceScopes(EmitContext context, IMethodBody methodBody, MethodDefinitionHandle methodHandle, out IMethodDefinition forwardToMethod)
PEWriter\FullMetadataWriter.cs (11)
22private readonly DefinitionIndex<IMethodDefinition> _methodDefs; 29private readonly SegmentedDictionary<IMethodDefinition, int> _parameterListIndex; 95_methodDefs = new DefinitionIndex<IMethodDefinition>(numMethods); 102_parameterListIndex = new SegmentedDictionary<IMethodDefinition, int>(numMethods, ReferenceEqualityComparer.Instance); 171protected override bool TryGetMethodDefinitionHandle(IMethodDefinition def, out MethodDefinitionHandle handle) 179protected override MethodDefinitionHandle GetMethodDefinitionHandle(IMethodDefinition def) 184protected override IMethodDefinition GetMethodDef(MethodDefinitionHandle handle) 189protected override IReadOnlyList<IMethodDefinition> GetMethodDefs() 229protected override ParameterHandle GetFirstParameterHandle(IMethodDefinition methodDef) 398foreach (IMethodDefinition methodDef in typeDef.GetMethods(Context)) 410private void CreateIndicesFor(IMethodDefinition methodDef)
PEWriter\Members.cs (5)
413IMethodDefinition MethodDefinition { get; } 941IMethodDefinition? GetResolvedMethod(EmitContext context); 994internal static bool HasBody(IMethodDefinition methodDef) 1015var method = member as IMethodDefinition;
PEWriter\MetadataVisitor.cs (4)
195this.Visit((IMethodDefinition)globalMethodDefinition); 274public void Visit(IEnumerable<IMethodDefinition> methods) 276foreach (IMethodDefinition method in methods) 282public virtual void Visit(IMethodDefinition method)
PEWriter\MetadataWriter.cs (20)
216protected abstract bool TryGetMethodDefinitionHandle(IMethodDefinition def, out MethodDefinitionHandle handle); 221protected abstract MethodDefinitionHandle GetMethodDefinitionHandle(IMethodDefinition def); 227protected abstract IMethodDefinition GetMethodDef(MethodDefinitionHandle handle); 233protected abstract IReadOnlyList<IMethodDefinition> GetMethodDefs(); 276protected abstract ParameterHandle GetFirstParameterHandle(IMethodDefinition methodDef); 587protected ImmutableArray<IParameterDefinition> GetParametersToEmit(IMethodDefinition methodDef) 597private ImmutableArray<IParameterDefinition> GetParametersToEmitCore(IMethodDefinition methodDef) 725IMethodDefinition methodDef = null; 965IMethodDefinition methodDef = null; 977public static MethodAttributes GetMethodAttributes(IMethodDefinition methodDef) 1170IMethodDefinition methodDef = null; 1630internal IMethodDefinition GetMethodDefinition(int token) 1678IMethodDefinition methodDef => GetMethodDefinitionHandle(methodDef), 1881entryPointHandle = entryPoint != null ? (MethodDefinitionHandle)GetMethodHandle((IMethodDefinition)entryPoint.AsDefinition(Context)) : default(MethodDefinitionHandle); 1887debugEntryPointHandle = (MethodDefinitionHandle)GetMethodHandle((IMethodDefinition)debugEntryPoint.AsDefinition(Context)); 2172foreach (IMethodDefinition methodDef in this.GetMethodDefs()) 2484foreach (IMethodDefinition methodDef in this.GetMethodDefs()) 2631foreach (IMethodDefinition methodDef in methodDefs) 2924foreach (IMethodDefinition method in methods) 2963foreach (IMethodDefinition method in methods)
PEWriter\MethodDefinitionBase.cs (3)
109public void Dispatch(MetadataVisitor visitor) => visitor.Visit((IMethodDefinition)this); 119public IMethodDefinition GetResolvedMethod(EmitContext context) => this; 131public IMethodDefinition MethodDefinition => this;
PEWriter\ReferenceIndexer.cs (1)
104protected override void ProcessMethodBody(IMethodDefinition method)
PEWriter\ReferenceIndexerBase.cs (2)
129public override void Visit(IMethodDefinition method) 135protected abstract void ProcessMethodBody(IMethodDefinition method);
PEWriter\ReturnValueParameter.cs (2)
13internal ReturnValueParameter(IMethodDefinition containingMethod) 23private readonly IMethodDefinition _containingMethod;
PEWriter\RootModuleType.cs (3)
23private IReadOnlyList<IMethodDefinition>? _methods; 38public IEnumerable<IMethodDefinition> GetMethods(EmitContext context) 40return _methods ??= SpecializedCollections.EmptyReadOnlyList<IMethodDefinition>();
PEWriter\TypeReferenceIndexer.cs (1)
50protected override void ProcessMethodBody(IMethodDefinition method)
PEWriter\Types.cs (4)
188new IMethodDefinition DefiningMethod 352public readonly Cci.IMethodDefinition ImplementingMethod; 359public MethodImplementation(Cci.IMethodDefinition ImplementingMethod, Cci.IMethodReference ImplementedMethod) 575IEnumerable<IMethodDefinition> GetMethods(EmitContext context);