public void RemoveEventsRange (TypeDefinition type) { Events.Remove (type.token.RID); }
static TypeDefinition BinaryRangeSearch (TypeDefinition [] types, uint rid, bool field) { int min = 0; int max = types.Length - 1; while (min <= max) { int mid = min + ((max - min) / 2); var type = types [mid]; var range = field ? type.fields_range : type.methods_range; if (rid < range.Start) max = mid - 1; else if (rid >= range.Start + range.Length) min = mid + 1; else return type; } return null; }
public void RemovePropertiesRange (TypeDefinition type) { Properties.Remove (type.token.RID); }
public bool TryGetEventsRange (TypeDefinition type, out Range range) { return Events.TryGetValue (type.token.RID, out range); }
public void RemoveInterfaceMapping (TypeDefinition type) { Interfaces.Remove (type.token.RID); }
public bool TryGetPropertiesRange (TypeDefinition type, out Range range) { return Properties.TryGetValue (type.token.RID, out range); }
public void RemoveReverseNestedTypeMapping (TypeDefinition type) { ReverseNestedTypes.Remove (type.token.RID); }
public bool TryGetInterfaceMapping (TypeDefinition type, out MetadataToken [] mapping) { return Interfaces.TryGetValue (type.token.RID, out mapping); }
public bool TryGetNestedTypeMapping (TypeDefinition type, out uint [] mapping) { return NestedTypes.TryGetValue (type.token.RID, out mapping); }
public bool TryGetReverseNestedTypeMapping (TypeDefinition type, out uint declaring) { return ReverseNestedTypes.TryGetValue (type.token.RID, out declaring); }
public void AddTypeDefinition (TypeDefinition type) { Types [type.token.RID - 1] = type; }
public static bool IsCompilerGeneratorEnumerator(TypeDefinition type) { if (!(type.DeclaringType != null && type.IsCompilerGenerated())) return false; foreach (TypeReference i in type.Interfaces) { if (i.Namespace == "System.Collections" && i.Name == "IEnumerator") return true; } return false; }
static void AssertField (TypeDefinition type, string name, Type expected) { var field = type.GetField (name); Assert.IsNotNull (field, name); Assert.AreEqual (expected.FullName, field.FieldType.FullName); }
static MethodDefinition GetMethod (IAssemblyResolver resolver, TypeDefinition type, MethodReference reference) { while (type != null) { var method = GetMethod (type.Methods, reference); if (method != null) return method; if (type.BaseType == null) return null; type = Resolve (resolver, type.BaseType); } return null; }
static FieldDefinition GetField (IAssemblyResolver resolver, TypeDefinition type, FieldReference reference) { while (type != null) { var field = GetField (type.Fields, reference); if (field != null) return field; if (type.BaseType == null) return null; type = Resolve (resolver, type.BaseType); } return null; }