public virtual int CompareTo(IProperty value) { int cmp = string.CompareOrdinal(this.FullyQualifiedName, value.FullyQualifiedName); if (cmp != 0) { return(cmp); } return(DiffUtility.Compare(Parameters, value.Parameters)); }
public virtual int CompareTo(IMethod value) { int cmp = string.CompareOrdinal(this.FullyQualifiedName, value.FullyQualifiedName); if (cmp != 0) { return(cmp); } cmp = this.TypeParameters.Count - value.TypeParameters.Count; if (cmp != 0) { return(cmp); } return(DiffUtility.Compare(Parameters, value.Parameters)); }
public static IMember FindSimilarMember(IClass type, IMember member) { if (type == null) { throw new ArgumentNullException("type"); } StringComparer nameComparer = member.DeclaringType.ProjectContent.Language.NameComparer; member = GetGenericMember(member); if (member is IMethod) { IMethod parentMethod = (IMethod)member; foreach (IMethod m in type.Methods) { if (nameComparer.Equals(parentMethod.Name, m.Name)) { if (m.IsStatic == parentMethod.IsStatic) { if (DiffUtility.Compare(parentMethod.Parameters, m.Parameters) == 0) { return(m); } } } } } else if (member is IProperty) { IProperty parentMethod = (IProperty)member; foreach (IProperty m in type.Properties) { if (nameComparer.Equals(parentMethod.Name, m.Name)) { if (m.IsStatic == parentMethod.IsStatic) { if (DiffUtility.Compare(parentMethod.Parameters, m.Parameters) == 0) { return(m); } } } } } return(null); }
static bool IsSimilarMemberInternal(IMember member1, IMember member2) { if (member1 == member2) { return(true); } if (member1 == null || member2 == null) { return(false); } if (member1.FullyQualifiedName != member2.FullyQualifiedName) { return(false); } if (member1.IsStatic != member2.IsStatic) { return(false); } IMethodOrProperty m1 = member1 as IMethodOrProperty; IMethodOrProperty m2 = member2 as IMethodOrProperty; if (m1 != null || m2 != null) { if (m1 != null && m2 != null) { if (DiffUtility.Compare(m1.Parameters, m2.Parameters) != 0) { return(false); } if (m1 is IMethod && m2 is IMethod) { if ((m1 as IMethod).TypeParameters.Count != (m2 as IMethod).TypeParameters.Count) { return(false); } } } else { return(false); } } IField f1 = member1 as IField; IField f2 = member2 as IField; if (f1 != null || f2 != null) { if (f1 != null && f2 != null) { if (f1.IsLocalVariable != f2.IsLocalVariable || f1.IsParameter != f2.IsParameter) { return(false); } } else { return(false); } } return(true); }