Fix IDE0019/20 (Use pattern matching)
authorStephen Toub <stoub@microsoft.com>
Thu, 15 Aug 2019 19:04:04 +0000 (15:04 -0400)
committerStephen Toub <stoub@microsoft.com>
Sat, 17 Aug 2019 11:31:50 +0000 (07:31 -0400)
Commit migrated from https://github.com/dotnet/coreclr/commit/fcc82b49cccb4cb01de1fb51ad1bbf3829e4f65d

src/libraries/System.Private.CoreLib/src/System/Collections/Hashtable.cs
src/libraries/System.Private.CoreLib/src/System/Decimal.cs
src/libraries/System.Private.CoreLib/src/System/Double.cs
src/libraries/System.Private.CoreLib/src/System/Int32.cs
src/libraries/System.Private.CoreLib/src/System/Int64.cs
src/libraries/System.Private.CoreLib/src/System/Range.cs
src/libraries/System.Private.CoreLib/src/System/Single.cs
src/libraries/System.Private.CoreLib/src/System/UInt32.cs
src/libraries/System.Private.CoreLib/src/System/UInt64.cs

index 2b3bb57..f3cfb2a 100644 (file)
@@ -171,9 +171,8 @@ namespace System.Collections
             }
             set
             {
-                if (_keycomparer is CompatibleComparer)
+                if (_keycomparer is CompatibleComparer keyComparer)
                 {
-                    CompatibleComparer keyComparer = (CompatibleComparer)_keycomparer;
                     _keycomparer = new CompatibleComparer(value, keyComparer.Comparer);
                 }
                 else if (_keycomparer == null)
@@ -207,9 +206,8 @@ namespace System.Collections
             }
             set
             {
-                if (_keycomparer is CompatibleComparer)
+                if (_keycomparer is CompatibleComparer keyComparer)
                 {
-                    CompatibleComparer keyComparer = (CompatibleComparer)_keycomparer;
                     _keycomparer = new CompatibleComparer(keyComparer.HashCodeProvider, value);
                 }
                 else if (_keycomparer == null)
index 8185950..d607739 100644 (file)
@@ -373,20 +373,12 @@ namespace System
         // if the given object is a boxed Decimal and its value is equal to the
         // value of this Decimal. Returns false otherwise.
         //
-        public override bool Equals(object? value)
-        {
-            if (value is decimal)
-            {
-                decimal other = (decimal)value;
-                return DecCalc.VarDecCmp(in this, in other) == 0;
-            }
-            return false;
-        }
+        public override bool Equals(object? value) =>
+            value is decimal other &&
+            DecCalc.VarDecCmp(in this, in other) == 0;
 
-        public bool Equals(decimal value)
-        {
-            return DecCalc.VarDecCmp(in this, in value) == 0;
-        }
+        public bool Equals(decimal value) =>
+            DecCalc.VarDecCmp(in this, in value) == 0;
 
         // Returns the hash code for this Decimal.
         //
index 1a15c8e..a25a29b 100644 (file)
@@ -162,9 +162,9 @@ namespace System
             {
                 return 1;
             }
-            if (value is double)
+
+            if (value is double d)
             {
-                double d = (double)value;
                 if (m_value < d) return -1;
                 if (m_value > d) return 1;
                 if (m_value == d) return 0;
@@ -175,6 +175,7 @@ namespace System
                 else
                     return 1;
             }
+
             throw new ArgumentException(SR.Arg_MustBeDouble);
         }
 
index daf1af5..e1707f0 100644 (file)
@@ -34,15 +34,16 @@ namespace System
             {
                 return 1;
             }
-            if (value is int)
+
+            // NOTE: Cannot use return (_value - value) as this causes a wrap
+            // around in cases where _value - value > MaxValue.
+            if (value is int i)
             {
-                // NOTE: Cannot use return (_value - value) as this causes a wrap
-                // around in cases where _value - value > MaxValue.
-                int i = (int)value;
                 if (m_value < i) return -1;
                 if (m_value > i) return 1;
                 return 0;
             }
+
             throw new ArgumentException(SR.Arg_MustBeInt32);
         }
 
index c61a2f7..1084ba0 100644 (file)
@@ -31,15 +31,16 @@ namespace System
             {
                 return 1;
             }
-            if (value is long)
+
+            // Need to use compare because subtraction will wrap
+            // to positive for very large neg numbers, etc.
+            if (value is long i)
             {
-                // Need to use compare because subtraction will wrap
-                // to positive for very large neg numbers, etc.
-                long i = (long)value;
                 if (m_value < i) return -1;
                 if (m_value > i) return 1;
                 return 0;
             }
+
             throw new ArgumentException(SR.Arg_MustBeInt64);
         }
 
index 0a729b2..a45eda3 100644 (file)
@@ -35,16 +35,10 @@ namespace System
 
         /// <summary>Indicates whether the current Range object is equal to another object of the same type.</summary>
         /// <param name="value">An object to compare with this object</param>
-        public override bool Equals(object? value)
-        {
-            if (value is Range)
-            {
-                Range r = (Range)value;
-                return r.Start.Equals(Start) && r.End.Equals(End);
-            }
-
-            return false;
-        }
+        public override bool Equals(object? value) =>
+            value is Range r &&
+            r.Start.Equals(Start) &&
+            r.End.Equals(End);
 
         /// <summary>Indicates whether the current Range object is equal to another Range object.</summary>
         /// <param name="other">An object to compare with this object</param>
index d31518c..7349134 100644 (file)
@@ -156,9 +156,9 @@ namespace System
             {
                 return 1;
             }
-            if (value is float)
+
+            if (value is float f)
             {
-                float f = (float)value;
                 if (m_value < f) return -1;
                 if (m_value > f) return 1;
                 if (m_value == f) return 0;
@@ -169,6 +169,7 @@ namespace System
                 else // f is NaN.
                     return 1;
             }
+
             throw new ArgumentException(SR.Arg_MustBeSingle);
         }
 
index b9cff28..26edf74 100644 (file)
@@ -33,15 +33,16 @@ namespace System
             {
                 return 1;
             }
-            if (value is uint)
+
+            // Need to use compare because subtraction will wrap
+            // to positive for very large neg numbers, etc.
+            if (value is uint i)
             {
-                // Need to use compare because subtraction will wrap
-                // to positive for very large neg numbers, etc.
-                uint i = (uint)value;
                 if (m_value < i) return -1;
                 if (m_value > i) return 1;
                 return 0;
             }
+
             throw new ArgumentException(SR.Arg_MustBeUInt32);
         }
 
index 58e0636..2999ba8 100644 (file)
@@ -32,15 +32,16 @@ namespace System
             {
                 return 1;
             }
-            if (value is ulong)
+
+            // Need to use compare because subtraction will wrap
+            // to positive for very large neg numbers, etc.
+            if (value is ulong i)
             {
-                // Need to use compare because subtraction will wrap
-                // to positive for very large neg numbers, etc.
-                ulong i = (ulong)value;
                 if (m_value < i) return -1;
                 if (m_value > i) return 1;
                 return 0;
             }
+
             throw new ArgumentException(SR.Arg_MustBeUInt64);
         }