diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableSolidColorBrush.cs b/src/Avalonia.Visuals/Media/Immutable/ImmutableSolidColorBrush.cs
index 010184ad3b..8e93ac580e 100644
--- a/src/Avalonia.Visuals/Media/Immutable/ImmutableSolidColorBrush.cs
+++ b/src/Avalonia.Visuals/Media/Immutable/ImmutableSolidColorBrush.cs
@@ -5,7 +5,7 @@ namespace Avalonia.Media.Immutable
///
/// Fills an area with a solid color.
///
- public readonly struct ImmutableSolidColorBrush : ISolidColorBrush, IEquatable
+ public class ImmutableSolidColorBrush : ISolidColorBrush, IEquatable
{
///
/// Initializes a new instance of the class.
@@ -48,8 +48,9 @@ namespace Avalonia.Media.Immutable
public bool Equals(ImmutableSolidColorBrush other)
{
- // ReSharper disable once CompareOfFloatsByEqualityOperator
- return Color == other.Color && Opacity == other.Opacity;
+ if (ReferenceEquals(null, other)) return false;
+ if (ReferenceEquals(this, other)) return true;
+ return Color.Equals(other.Color) && Opacity.Equals(other.Opacity);
}
public override bool Equals(object obj)
@@ -67,12 +68,12 @@ namespace Avalonia.Media.Immutable
public static bool operator ==(ImmutableSolidColorBrush left, ImmutableSolidColorBrush right)
{
- return left.Equals(right);
+ return Equals(left, right);
}
public static bool operator !=(ImmutableSolidColorBrush left, ImmutableSolidColorBrush right)
{
- return !left.Equals(right);
+ return !Equals(left, right);
}
///