From b57c582f7a9afaea181b5d2a2d3f6f30576770f7 Mon Sep 17 00:00:00 2001 From: rameel Date: Fri, 9 Oct 2026 19:33:26 +0500 Subject: [PATCH] literals: reject binary BigInteger literals on net8.0 BigInteger does not support NumberStyles.BinaryNumber on net8.0. Throw an ArgumentException when Number is called with NumberKind.BinaryNumber. --- src/Ramstack.Parsing/Literal.Number.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Ramstack.Parsing/Literal.Number.cs b/src/Ramstack.Parsing/Literal.Number.cs index d3f8283..73ccc86 100644 --- a/src/Ramstack.Parsing/Literal.Number.cs +++ b/src/Ramstack.Parsing/Literal.Number.cs @@ -68,7 +68,16 @@ public static Parser Number(string? name, NumberKind kind = NumberKind.Aut #if NET8_0_OR_GREATER if (kind == NumberKind.BinaryNumber) + { + #if NET8_0 + if (typeof(T) == typeof(BigInteger)) + throw new ArgumentException( + $"Number kind {kind} is not supported for BigInteger.", + nameof(kind)); + #endif + return new NumberLiteral(name ?? "binary number", NumberStyles.BinaryNumber); + } #endif throw new ArgumentException(