summaryrefslogtreecommitdiff
path: root/Source/Dafny/BigIntegerParser.cs
diff options
context:
space:
mode:
authorGravatar Clément Pit--Claudel <clement.pitclaudel@live.com>2015-06-12 14:28:42 -0700
committerGravatar Clément Pit--Claudel <clement.pitclaudel@live.com>2015-06-12 14:28:42 -0700
commite054e59a6deda9793b66cf78374b75f7d557bef8 (patch)
tree1abd91a2131a7b8b78202b9552eb2b6a52eee618 /Source/Dafny/BigIntegerParser.cs
parentce8e8a618315dd03f4762c261ed96e7815a976cf (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.cs4
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