IEnumerable <FieldDef> getPossibleFields(TypeDef type) { var typeToFields = new TypeDefDict <List <FieldDef> >(); foreach (var field in type.Fields) { if (field.Attributes != FieldAttributes.Private) { continue; } var fieldType = DotNetUtils.getType(module, field.FieldSig.GetFieldType()); if (fieldType == null) { continue; } if (!checkBaseType(fieldType)) { continue; } var list = typeToFields.find(fieldType); if (list == null) { typeToFields.add(fieldType, list = new List <FieldDef>()); } list.Add(field); } foreach (var list in typeToFields.getValues()) { if (list.Count == 1) { yield return(list[0]); } } }
public TypeDefDict <bool> GetInlinedTypes(IEnumerable <MethodDef> unusedMethods) { var unused = new MethodDefAndDeclaringTypeDict <bool>(); foreach (var method in unusedMethods) { unused.Add(method, true); } var types = new TypeDefDict <bool>(); foreach (var type in methodsTypes.GetKeys()) { if (CheckAllMethodsUnused(unused, type)) { types.Add(type, true); } } return(types); }
public TypeDefDict<bool> getInlinedTypes(IEnumerable<MethodDef> unusedMethods) { var unused = new MethodDefAndDeclaringTypeDict<bool>(); foreach (var method in unusedMethods) unused.add(method, true); var types = new TypeDefDict<bool>(); foreach (var type in methodsTypes.getKeys()) { if (checkAllMethodsUnused(unused, type)) types.add(type, true); } return types; }
IEnumerable<FieldDef> GetPossibleFields(TypeDef type) { var typeToFields = new TypeDefDict<List<FieldDef>>(); foreach (var field in type.Fields) { if (field.Attributes != FieldAttributes.Private) continue; var fieldType = DotNetUtils.GetType(module, field.FieldSig.GetFieldType()); if (fieldType == null) continue; if (!CheckBaseType(fieldType)) continue; var list = typeToFields.Find(fieldType); if (list == null) typeToFields.Add(fieldType, list = new List<FieldDef>()); list.Add(field); } foreach (var list in typeToFields.GetValues()) { if (list.Count == 1) yield return list[0]; } }