internal static bool TryGetValueEquals <T>(T x, T y, MemberSettings settings, out bool result) { if (ReferenceEquals(x, y)) { result = true; return(true); } if (x == null || y == null) { result = false; return(true); } if (x.GetType() != y.GetType()) { result = false; return(true); } if (settings.TryGetComparer(x.GetType(), out var comparer)) { result = comparer.Equals(x, y); return(true); } if (settings.IsEquatable(x.GetType())) { result = Equals(x, y); return(true); } result = false; return(false); }
private static TypeErrors CreateErrors(Type type, MemberSettings settings, MemberPath path) { if (settings.IsEquatable(type) || settings.TryGetComparer(type, out _)) { return(null); } var errors = VerifyCore(settings, type) .VerifyRecursive(type, settings, path, GetNodeErrors) .Finnish(); return(errors); }