From c2638657063da6de03d1532cb6f6b6dd08cb2cae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20St=C3=BChmer?=
<3283596+samtrion@users.noreply.github.com>
Date: Thu, 4 Jan 2024 12:20:01 +0100
Subject: [PATCH] chore: Structures updated so that we emulate native behavior.
---
.../Argument_ThrowArgumentException.cs | 20 ++++++++++++++++++
.../Argument_ThrowArgumentNullException.cs | 20 ++++++++++++++++++
...gument_ThrowArgumentOutOfRangeException.cs | 21 +++++++++++++++++++
.../Argument_ThrowIfGreaterThan.cs | 3 ++-
.../Argument_ThrowIfGreaterThanOrEqual.cs | 2 +-
.../Argument_ThrowIfLessThan.cs | 2 +-
.../Argument_ThrowIfLessThanOrEqual.cs | 2 +-
.../Argument_ThrowIfNull.cs | 2 +-
.../Argument_ThrowIfNullOrEmpty.cs | 4 ++--
.../Argument_ThrowIfNullOrWhiteSpace.cs | 4 ++--
10 files changed, 71 insertions(+), 9 deletions(-)
create mode 100644 src/NetEvolve.Arguments/Argument_ThrowArgumentException.cs
create mode 100644 src/NetEvolve.Arguments/Argument_ThrowArgumentNullException.cs
create mode 100644 src/NetEvolve.Arguments/Argument_ThrowArgumentOutOfRangeException.cs
diff --git a/src/NetEvolve.Arguments/Argument_ThrowArgumentException.cs b/src/NetEvolve.Arguments/Argument_ThrowArgumentException.cs
new file mode 100644
index 0000000..7a9fc65
--- /dev/null
+++ b/src/NetEvolve.Arguments/Argument_ThrowArgumentException.cs
@@ -0,0 +1,20 @@
+#if !NET8_0_OR_GREATER
+namespace NetEvolve.Arguments;
+
+using System;
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using System.Runtime.CompilerServices;
+
+public static partial class Argument
+{
+ /// Throws an .
+ [DoesNotReturn]
+ [MethodImpl(MethodImplOptions.NoInlining)]
+ [StackTraceHidden]
+ private static void ThrowArgumentException(string? paramName)
+ {
+ throw new ArgumentException(null, paramName);
+ }
+}
+#endif
diff --git a/src/NetEvolve.Arguments/Argument_ThrowArgumentNullException.cs b/src/NetEvolve.Arguments/Argument_ThrowArgumentNullException.cs
new file mode 100644
index 0000000..90f8ca8
--- /dev/null
+++ b/src/NetEvolve.Arguments/Argument_ThrowArgumentNullException.cs
@@ -0,0 +1,20 @@
+#if !NET8_0_OR_GREATER
+namespace NetEvolve.Arguments;
+
+using System;
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using System.Runtime.CompilerServices;
+
+public static partial class Argument
+{
+ /// Throws an .
+ [DoesNotReturn]
+ [MethodImpl(MethodImplOptions.NoInlining)]
+ [StackTraceHidden]
+ private static void ThrowArgumentNullException(string? paramName)
+ {
+ throw new ArgumentNullException(paramName);
+ }
+}
+#endif
diff --git a/src/NetEvolve.Arguments/Argument_ThrowArgumentOutOfRangeException.cs b/src/NetEvolve.Arguments/Argument_ThrowArgumentOutOfRangeException.cs
new file mode 100644
index 0000000..34650a2
--- /dev/null
+++ b/src/NetEvolve.Arguments/Argument_ThrowArgumentOutOfRangeException.cs
@@ -0,0 +1,21 @@
+#if !NET8_0_OR_GREATER
+namespace NetEvolve.Arguments;
+
+using System;
+using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
+using System.Runtime.CompilerServices;
+
+public static partial class Argument
+{
+ /// Throws an .
+ [DoesNotReturn]
+ [MethodImpl(MethodImplOptions.NoInlining)]
+ [StackTraceHidden]
+ private static void ThrowArgumentOutOfRangeException(string? paramName, T value)
+ where T : IComparable
+ {
+ throw new ArgumentOutOfRangeException(paramName, value, null);
+ }
+}
+#endif
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThan.cs b/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThan.cs
index 4d87b6b..d49209f 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThan.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThan.cs
@@ -2,6 +2,7 @@
using System;
using System.Diagnostics;
+using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;
public static partial class Argument
@@ -25,7 +26,7 @@ public static void ThrowIfGreaterThan(
#else
if (value.CompareTo(other) > 0)
{
- throw new ArgumentOutOfRangeException(paramName, value, null);
+ ThrowArgumentOutOfRangeException(paramName, value);
}
#endif
}
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThanOrEqual.cs b/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThanOrEqual.cs
index fc65d38..881b358 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThanOrEqual.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfGreaterThanOrEqual.cs
@@ -25,7 +25,7 @@ public static void ThrowIfGreaterThanOrEqual(
#else
if (value.CompareTo(other) >= 0)
{
- throw new ArgumentOutOfRangeException(paramName, value, null);
+ ThrowArgumentOutOfRangeException(paramName, value);
}
#endif
}
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfLessThan.cs b/src/NetEvolve.Arguments/Argument_ThrowIfLessThan.cs
index 3480348..84142c1 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfLessThan.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfLessThan.cs
@@ -25,7 +25,7 @@ public static void ThrowIfLessThan(
#else
if (value.CompareTo(other) < 0)
{
- throw new ArgumentOutOfRangeException(paramName, value, null);
+ ThrowArgumentOutOfRangeException(paramName, value);
}
#endif
}
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfLessThanOrEqual.cs b/src/NetEvolve.Arguments/Argument_ThrowIfLessThanOrEqual.cs
index cd16de4..2e27613 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfLessThanOrEqual.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfLessThanOrEqual.cs
@@ -25,7 +25,7 @@ public static void ThrowIfLessThanOrEqual(
#else
if (value.CompareTo(other) <= 0)
{
- throw new ArgumentOutOfRangeException(paramName, value, null);
+ ThrowArgumentOutOfRangeException(paramName, value);
}
#endif
}
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfNull.cs b/src/NetEvolve.Arguments/Argument_ThrowIfNull.cs
index 637cf66..c674335 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfNull.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfNull.cs
@@ -23,7 +23,7 @@ public static void ThrowIfNull(
#else
if (argument is null)
{
- throw new ArgumentNullException(paramName);
+ ThrowArgumentNullException(paramName);
}
#endif
}
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfNullOrEmpty.cs b/src/NetEvolve.Arguments/Argument_ThrowIfNullOrEmpty.cs
index 6ce06de..ef05d67 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfNullOrEmpty.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfNullOrEmpty.cs
@@ -25,12 +25,12 @@ public static void ThrowIfNullOrEmpty(
#else
if (argument is null)
{
- throw new ArgumentNullException(paramName);
+ ThrowArgumentNullException(paramName);
}
if (string.IsNullOrEmpty(argument))
{
- throw new ArgumentException(null, paramName);
+ ThrowArgumentException(paramName);
}
#endif
}
diff --git a/src/NetEvolve.Arguments/Argument_ThrowIfNullOrWhiteSpace.cs b/src/NetEvolve.Arguments/Argument_ThrowIfNullOrWhiteSpace.cs
index 5f4409e..e698491 100644
--- a/src/NetEvolve.Arguments/Argument_ThrowIfNullOrWhiteSpace.cs
+++ b/src/NetEvolve.Arguments/Argument_ThrowIfNullOrWhiteSpace.cs
@@ -25,12 +25,12 @@ public static void ThrowIfNullOrWhiteSpace(
#else
if (argument is null)
{
- throw new ArgumentNullException(paramName);
+ ThrowArgumentNullException(paramName);
}
if (string.IsNullOrWhiteSpace(argument))
{
- throw new ArgumentException(null, paramName);
+ ThrowArgumentException(paramName);
}
#endif
}