Emit\EditAndContinue\DeltaMetadataWriter.cs (40)
36private readonly Dictionary<ITypeDefinition, ImmutableArray<IMethodDefinition>> _deletedTypeMembers;
37private readonly IReadOnlyDictionary<ITypeDefinition, ArrayBuilder<IMethodDefinition>> _deletedMethodDefs;
42private readonly DefinitionIndex<IMethodDefinition> _methodDefs;
45private readonly Dictionary<IParameterDefinition, IMethodDefinition> _parameterDefList;
68private readonly Dictionary<IMethodDefinition, AddedOrChangedMethodInfo> _addedOrChangedMethods;
77IReadOnlyDictionary<ITypeDefinition, ArrayBuilder<IMethodDefinition>> deletedMethodDefs,
102_deletedTypeMembers = new Dictionary<ITypeDefinition, ImmutableArray<IMethodDefinition>>(ReferenceEqualityComparer.Instance);
107_methodDefs = new DefinitionIndex<IMethodDefinition>(this.TryGetExistingMethodDefIndex, sizes[(int)TableIndex.MethodDef]);
110_parameterDefList = new Dictionary<IParameterDefinition, IMethodDefinition>(Cci.SymbolEquivalentEqualityComparer.Instance);
130_addedOrChangedMethods = new Dictionary<IMethodDefinition, AddedOrChangedMethodInfo>(Cci.SymbolEquivalentEqualityComparer.Instance);
278foreach (var def in _methodDefs.GetRows())
356protected override bool TryGetMethodDefinitionHandle(IMethodDefinition def, out MethodDefinitionHandle handle)
363protected override MethodDefinitionHandle GetMethodDefinitionHandle(IMethodDefinition def)
366protected override IMethodDefinition GetMethodDef(MethodDefinitionHandle index)
369protected override IReadOnlyList<IMethodDefinition> GetMethodDefs()
396protected override ParameterHandle GetFirstParameterHandle(IMethodDefinition methodDef)
494internal static IReadOnlyDictionary<ITypeDefinition, ArrayBuilder<IMethodDefinition>> CreateDeletedMethodsDefs(EmitContext context, SymbolChanges changes)
496var result = new Dictionary<ITypeDefinition, ArrayBuilder<IMethodDefinition>>(ReferenceEqualityComparer.Instance);
520ArrayBuilder<IMethodDefinition>? getDeletedMethodDefs(ITypeDefinition typeDef)
528var newMethodDefs = ArrayBuilder<IMethodDefinition>.GetInstance();
538var deletedMethodDef = (IMethodDefinition)deletedMethod.GetCciAdapter();
550var newMethodDef = (IMethodDefinition)newMethod.GetCciAdapter();
575var deletedClosureMethodDef = (IMethodDefinition)deletedClosureMethod.GetCciAdapter();
649foreach (var methodDef in typeDef.GetMethods(this.Context))
659foreach (var newMethodDef in newMethodDefs)
683var methodDef = (IMethodDefinition?)methodImpl.ImplementingMethod.AsDefinition(this.Context);
720IMethodDefinition methodDef => TryGetExistingMethodDefIndex(methodDef, out _),
727private void CreateIndicesForMethod(IMethodDefinition methodDef, SymbolChange methodChange)
771private void EmitParametersFromOriginalMetadata(IMethodDefinition methodDef, MethodDefinitionHandle handle)
788private void EmitParametersFromDelta(IMethodDefinition methodDef, MethodDefinitionHandle handle)
1184var methodDef = _parameterDefList[paramDef];
1639private bool TryGetExistingMethodDefIndex(IMethodDefinition item, out int index)
1822private readonly IReadOnlyDictionary<ITypeDefinition, ImmutableArray<IMethodDefinition>> _deletedTypeMembers;
1861public override void Visit(IMethodDefinition method)
1871var methodDef = (IMethodDefinition?)methodImplementation.ImplementingMethod.AsDefinition(this.Context);