aboutsummaryrefslogtreecommitdiffstats
path: root/test/libsolidity
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-10-09 21:52:14 +0800
committerGitHub <noreply@github.com>2018-10-09 21:52:14 +0800
commit7dbe88017306b276a73c4365971dca06582875a2 (patch)
tree7c30e72285882fe5a0e4ff62efbde280c9f6b612 /test/libsolidity
parent547b26d46462663b49631d55cf32dc10094eb4d4 (diff)
parent4d5216c2e0bdfb1b0098451215a2e7d12f65055f (diff)
downloaddexon-solidity-7dbe88017306b276a73c4365971dca06582875a2.tar
dexon-solidity-7dbe88017306b276a73c4365971dca06582875a2.tar.gz
dexon-solidity-7dbe88017306b276a73c4365971dca06582875a2.tar.bz2
dexon-solidity-7dbe88017306b276a73c4365971dca06582875a2.tar.lz
dexon-solidity-7dbe88017306b276a73c4365971dca06582875a2.tar.xz
dexon-solidity-7dbe88017306b276a73c4365971dca06582875a2.tar.zst
dexon-solidity-7dbe88017306b276a73c4365971dca06582875a2.zip
Merge pull request #5137 from ethereum/fix_5052
Fixes #5052 (very large hex literals wrongly interpreted)
Diffstat (limited to 'test/libsolidity')
-rw-r--r--test/libsolidity/syntaxTests/types/rational_number_huge.sol10
-rw-r--r--test/libsolidity/syntaxTests/types/rational_number_huge_fail.sol8
2 files changed, 18 insertions, 0 deletions
diff --git a/test/libsolidity/syntaxTests/types/rational_number_huge.sol b/test/libsolidity/syntaxTests/types/rational_number_huge.sol
new file mode 100644
index 00000000..378de201
--- /dev/null
+++ b/test/libsolidity/syntaxTests/types/rational_number_huge.sol
@@ -0,0 +1,10 @@
+contract C {
+ function f(uint y) public pure {
+ // fits FixedBytes with exactly 32-bytes
+ y = 0xffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000; // FixedBytes (32)
+
+ // fits exactly into FixedBytes (32), ensures underscored literals won't hurt
+ y = 0xffffffff00000000ffffffff00000000ffffffff00000000ffffffff_00000000;
+ }
+}
+// ----
diff --git a/test/libsolidity/syntaxTests/types/rational_number_huge_fail.sol b/test/libsolidity/syntaxTests/types/rational_number_huge_fail.sol
new file mode 100644
index 00000000..08e50656
--- /dev/null
+++ b/test/libsolidity/syntaxTests/types/rational_number_huge_fail.sol
@@ -0,0 +1,8 @@
+contract C {
+ function f(uint y) public pure {
+ // one byte too long for storing in Fixedbytes (would require 33 bytes)
+ y = 0xffffffff00000000ffffffff00000000ffffffff00000000ffffffff000000001;
+ }
+}
+// ----
+// TypeError: (142-209): Type int_const 1852...(71 digits omitted)...7281 is not implicitly convertible to expected type uint256.