Skip to content

Commit

Permalink
fixed possible null reference exceptions in Optional's equal
Browse files Browse the repository at this point in the history
  • Loading branch information
duffleit committed Oct 11, 2016
1 parent bce16f9 commit a0405e7
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 14 deletions.
7 changes: 5 additions & 2 deletions fluentOptionals/Optionals/Optional1.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,11 @@ public int CompareTo(T1 other)
? -1 : Comparer<T1>.Default.Compare(Value, other);


public bool Equals(Optional<T1> other)
=> IsNone && other.IsNone || IsSome && other.IsSome && EqualityComparer<T1>.Default.Equals(Value, other.Value);
public bool Equals(Optional<T1> other)
{
return other != null && (IsNone && other.IsNone ||
IsSome && other.IsSome && EqualityComparer<T1>.Default.Equals(Value, other.Value));
}

public bool Equals(T1 other)
=> !IsNone && EqualityComparer<T1>.Default.Equals(Value, other);
Expand Down
6 changes: 4 additions & 2 deletions fluentOptionals/Optionals/Optional2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,10 @@ public Optional<T1, T2, T3> Join<T3>(Optional<T3> optionalToJoin)

#region Equals

public bool Equals(Optional<T1, T2> other)
=> _o1.Equals(other._o1) && _o2.Equals(other._o2);
public bool Equals(Optional<T1, T2> other)
{
return other != null && (_o1.Equals(other._o1) && _o2.Equals(other._o2));
}

#endregion
}
Expand Down
6 changes: 4 additions & 2 deletions fluentOptionals/Optionals/Optional3.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,10 @@ public Optional<T1, T2, T3, T4> Join<T4>(Optional<T4> optionalToJoin)

#region Equals

public bool Equals(Optional<T1, T2, T3> other)
=> _o1.Equals(other._o1) && _o2.Equals(other._o2) && _o2.Equals(other._o3);
public bool Equals(Optional<T1, T2, T3> other)
{
return other != null && (_o1.Equals(other._o1) && _o2.Equals(other._o2) && _o2.Equals(other._o3));
}

#endregion
}
Expand Down
6 changes: 4 additions & 2 deletions fluentOptionals/Optionals/Optional4.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ public Optional<T1, T2, T3, T4, T5> Join<T5>(Optional<T5> optionalToJoin)

#region Equals

public bool Equals(Optional<T1, T2, T3, T4> other)
=> _o1.Equals(other._o1) && _o2.Equals(other._o2) && _o2.Equals(other._o3) && _o2.Equals(other._o4);
public bool Equals(Optional<T1, T2, T3, T4> other)
{
return other != null && (_o1.Equals(other._o1) && _o2.Equals(other._o2) && _o2.Equals(other._o3) && _o2.Equals(other._o4));
}

#endregion
}
Expand Down
7 changes: 5 additions & 2 deletions fluentOptionals/Optionals/Optional5.cs
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,11 @@ public Optional<T1, T2, T3, T4, T5, T6> Join<T6>(Optional<T6> optionalToJoin)

#region Equals

public bool Equals(Optional<T1, T2, T3, T4, T5> other)
=> _o1.Equals(other._o1) && _o2.Equals(other._o2) && _o2.Equals(other._o3) && _o2.Equals(other._o4) && _o2.Equals(other._o5);
public bool Equals(Optional<T1, T2, T3, T4, T5> other)
{
return other != null && (_o1.Equals(other._o1) && _o2.Equals(other._o2) && _o2.Equals(other._o3) && _o2.Equals(other._o4) &&
_o2.Equals(other._o5));
}

#endregion
}
Expand Down
7 changes: 5 additions & 2 deletions fluentOptionals/Optionals/Optional6.cs
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,11 @@ public Optional<T1, T2, T3, T4, T5, T6, T7> Join<T7>(Optional<T7> optionalToJoin

#region Equals

public bool Equals(Optional<T1, T2, T3, T4, T5, T6> other)
=> _o1.Equals(other._o1) && _o2.Equals(other._o2) && _o2.Equals(other._o3) && _o2.Equals(other._o4) && _o2.Equals(other._o5) && _o2.Equals(other._o6);
public bool Equals(Optional<T1, T2, T3, T4, T5, T6> other)
{
return other != null && (_o1.Equals(other._o1) && _o2.Equals(other._o2) && _o2.Equals(other._o3) && _o2.Equals(other._o4) &&
_o2.Equals(other._o5) && _o2.Equals(other._o6));
}

#endregion
}
Expand Down
7 changes: 5 additions & 2 deletions fluentOptionals/Optionals/Optional7.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,11 @@ public void MatchNone(Action handle)

#region Equals

public bool Equals(Optional<T1, T2, T3, T4, T5, T6, T7> other)
=> _o1.Equals(other._o1) && _o2.Equals(other._o2) && _o2.Equals(other._o3) && _o2.Equals(other._o4) && _o2.Equals(other._o5) && _o2.Equals(other._o6) && _o2.Equals(other._o7);
public bool Equals(Optional<T1, T2, T3, T4, T5, T6, T7> other)
{
return other != null && (_o1.Equals(other._o1) && _o2.Equals(other._o2) && _o2.Equals(other._o3) && _o2.Equals(other._o4) &&
_o2.Equals(other._o5) && _o2.Equals(other._o6) && _o2.Equals(other._o7));
}

#endregion
}
Expand Down

0 comments on commit a0405e7

Please sign in to comment.