aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/parsing/Token.cpp
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-07-20 05:34:00 +0800
committerGitHub <noreply@github.com>2017-07-20 05:34:00 +0800
commit1dd4c7043bde70b0770ecdec036b8e8c949979e8 (patch)
tree667e1ab8943b068e6cfe961e1f0a9566a983aca4 /libsolidity/parsing/Token.cpp
parent6d6d4f69078a6417e1cfb89942f7df2264d89987 (diff)
parent72917c4f3513a73ae180767b854de8653be9a2f4 (diff)
downloaddexon-solidity-1dd4c7043bde70b0770ecdec036b8e8c949979e8.tar
dexon-solidity-1dd4c7043bde70b0770ecdec036b8e8c949979e8.tar.gz
dexon-solidity-1dd4c7043bde70b0770ecdec036b8e8c949979e8.tar.bz2
dexon-solidity-1dd4c7043bde70b0770ecdec036b8e8c949979e8.tar.lz
dexon-solidity-1dd4c7043bde70b0770ecdec036b8e8c949979e8.tar.xz
dexon-solidity-1dd4c7043bde70b0770ecdec036b8e8c949979e8.tar.zst
dexon-solidity-1dd4c7043bde70b0770ecdec036b8e8c949979e8.zip
Merge pull request #1544 from VoR0220/fixedPointTypeResolution
Fixed point type resolution
Diffstat (limited to 'libsolidity/parsing/Token.cpp')
-rw-r--r--libsolidity/parsing/Token.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/libsolidity/parsing/Token.cpp b/libsolidity/parsing/Token.cpp
index 66312f69..9cec0303 100644
--- a/libsolidity/parsing/Token.cpp
+++ b/libsolidity/parsing/Token.cpp
@@ -70,7 +70,7 @@ void ElementaryTypeNameToken::assertDetails(Token::Value _baseType, unsigned con
else if (_baseType == Token::UFixedMxN || _baseType == Token::FixedMxN)
{
solAssert(
- _first + _second <= 256 && _first % 8 == 0 && _second % 8 == 0,
+ _first >= 8 && _first <= 256 && _first % 8 == 0 && _second <= 80,
"No elementary type " + string(Token::toString(_baseType)) + to_string(_first) + "x" + to_string(_second) + "."
);
}
@@ -157,12 +157,8 @@ tuple<Token::Value, unsigned int, unsigned int> Token::fromIdentifierOrKeyword(s
) {
int n = parseSize(positionX + 1, _literal.end());
if (
- 0 <= m && m <= 256 &&
- 8 <= n && n <= 256 &&
- m + n > 0 &&
- m + n <= 256 &&
- m % 8 == 0 &&
- n % 8 == 0
+ 8 <= m && m <= 256 && m % 8 == 0 &&
+ 0 <= n && n <= 80
) {
if (keyword == Token::UFixed)
return make_tuple(Token::UFixedMxN, m, n);