Update Version annotations to match changes in master (#23917)
authorStephen Toub <stoub@microsoft.com>
Fri, 12 Apr 2019 02:22:30 +0000 (22:22 -0400)
committerGitHub <noreply@github.com>
Fri, 12 Apr 2019 02:22:30 +0000 (22:22 -0400)
src/System.Private.CoreLib/shared/System/Version.cs

index c6399ba..67ddf85 100644 (file)
@@ -427,32 +427,34 @@ namespace System
             return !(v1 == v2);
         }
 
-        public static bool operator <(Version v1, Version? v2)
+        public static bool operator <(Version? v1, Version? v2)
         {
             if (v1 is null)
-                throw new ArgumentNullException(nameof(v1));
+            {
+                return !(v2 is null);
+            }
+
             return (v1.CompareTo(v2) < 0);
         }
 
-        public static bool operator <=(Version v1, Version? v2)
+        public static bool operator <=(Version? v1, Version? v2)
         {
             if (v1 is null)
-                throw new ArgumentNullException(nameof(v1));
+            {
+                return true;
+            }
+
             return (v1.CompareTo(v2) <= 0);
         }
 
-        public static bool operator >(Version v1, Version? v2)
+        public static bool operator >(Version? v1, Version? v2)
         {
-            if (v1 is null)
-                throw new ArgumentNullException(nameof(v1));
-            return (v1.CompareTo(v2) > 0);
+            return (v2 < v1);
         }
 
-        public static bool operator >=(Version v1, Version? v2)
+        public static bool operator >=(Version? v1, Version? v2)
         {
-            if (v1 is null)
-                throw new ArgumentNullException(nameof(v1));
-            return (v1.CompareTo(v2) >= 0);
+            return (v2 <= v1);
         }
     }
 }