From c3e5d6b7ef64f7924754d1b0a1c5577e038e7bf4 Mon Sep 17 00:00:00 2001 From: chriseth Date: Mon, 26 Jun 2017 09:49:45 +0200 Subject: Give min and max values in warning message. --- libsolidity/analysis/TypeChecker.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'libsolidity') diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index 1c91a2b0..b276a2d4 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -964,9 +964,17 @@ bool TypeChecker::visit(VariableDeclarationStatement const& _statement) { int numBits = type->numBits(); bool isSigned = type->isSigned(); + string minValue; + string maxValue; if (isSigned) + { numBits--; - extension = ", which can hold values up to " + string((u256(1) << numBits) - 1); + minValue = "-" + bigint(bigint(1) << numBits).str(); + } + else + minValue = "0"; + maxValue = bigint((bigint(1) << numBits) - 1).str(); + extension = ", which can hold values between " + minValue + " and " + maxValue; } else solAssert(dynamic_cast(var.annotation().type.get()), "Unknown type."); -- cgit