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);