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 }