diff options
author | Clément Pit--Claudel <clement.pitclaudel@live.com> | 2015-06-12 14:28:42 -0700 |
---|---|---|
committer | Clément Pit--Claudel <clement.pitclaudel@live.com> | 2015-06-12 14:28:42 -0700 |
commit | e054e59a6deda9793b66cf78374b75f7d557bef8 (patch) | |
tree | 1abd91a2131a7b8b78202b9552eb2b6a52eee618 /Source/Dafny/BigIntegerParser.cs | |
parent | ce8e8a618315dd03f4762c261ed96e7815a976cf (diff) |
Fix a bug spotted by Chris in my BigInteger patch; thanks!
The problem was this:
Console.WriteLine(Int64.Parse("08000000000000000", NumberStyles.HexNumber));
// => -9223372036854775808
Console.WriteLine(Int64.Parse("9223372036854775808"));
// => Value was either too large or too small for an Int64.
In other words, large hex numbers are interpreted as a sequence of bits, not as
an actual number.
Diffstat (limited to 'Source/Dafny/BigIntegerParser.cs')
-rw-r--r-- | Source/Dafny/BigIntegerParser.cs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Source/Dafny/BigIntegerParser.cs b/Source/Dafny/BigIntegerParser.cs index 94e842cc..cd2cf314 100644 --- a/Source/Dafny/BigIntegerParser.cs +++ b/Source/Dafny/BigIntegerParser.cs @@ -11,8 +11,8 @@ namespace Microsoft.Dafny { /// Int64, and only falling back if needed. /// </summary> internal static BigInteger Parse(string str, NumberStyles style) { - Int64 parsed; - if (Int64.TryParse(str, style, NumberFormatInfo.CurrentInfo, out parsed)) { + UInt64 parsed; + if (UInt64.TryParse(str, style, NumberFormatInfo.CurrentInfo, out parsed)) { return new BigInteger(parsed); } else { // Throws on Mono 3.2.8 |