make AsyncFlowControl implement IEquatable<AsyncFlowControl> (#43232)
authorhrrrrustic <35951936+hrrrrustic@users.noreply.github.com>
Tue, 13 Oct 2020 13:00:34 +0000 (09:00 -0400)
committerGitHub <noreply@github.com>
Tue, 13 Oct 2020 13:00:34 +0000 (09:00 -0400)
* make AsyncFlowControl implement IEquatable<AsyncFlowControl>, fixes #31996

* remove test

* remove extra space

src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs
src/libraries/System.Threading/ref/System.Threading.cs

index 9f5b9cd..ba855b4 100644 (file)
@@ -557,7 +557,7 @@ namespace System.Threading
         }
     }
 
-    public struct AsyncFlowControl : IDisposable
+    public struct AsyncFlowControl : IEquatable<AsyncFlowControl>, IDisposable
     {
         private Thread? _thread;
 
@@ -604,7 +604,7 @@ namespace System.Threading
 
         public override bool Equals(object? obj)
         {
-            return obj is AsyncFlowControl && Equals((AsyncFlowControl)obj);
+            return obj is AsyncFlowControl asyncControl && Equals(asyncControl);
         }
 
         public bool Equals(AsyncFlowControl obj)
index db8ef2c..0ec6666 100644 (file)
@@ -18,7 +18,7 @@ namespace System.Threading
         public System.Threading.Mutex? Mutex { get { throw null; } }
         public int MutexIndex { get { throw null; } }
     }
-    public partial struct AsyncFlowControl : System.IDisposable
+    public partial struct AsyncFlowControl : System.IEquatable<AsyncFlowControl>, System.IDisposable
     {
         private object _dummy;
         private int _dummyPrimitive;