diff options
author | chriseth <chris@ethereum.org> | 2018-04-24 18:12:03 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-24 18:12:03 +0800 |
commit | d1e1293fbd852149edfd03fd6b2e54c8c4c6e5f9 (patch) | |
tree | e389bf6c004e88917e91e6c93669b058ac129521 /test | |
parent | 258ae8927e21cddc18935e26b4184a833c85bda8 (diff) | |
parent | 1ac0090f31d12a720950991ab4e85710877effd1 (diff) | |
download | dexon-solidity-d1e1293fbd852149edfd03fd6b2e54c8c4c6e5f9.tar dexon-solidity-d1e1293fbd852149edfd03fd6b2e54c8c4c6e5f9.tar.gz dexon-solidity-d1e1293fbd852149edfd03fd6b2e54c8c4c6e5f9.tar.bz2 dexon-solidity-d1e1293fbd852149edfd03fd6b2e54c8c4c6e5f9.tar.lz dexon-solidity-d1e1293fbd852149edfd03fd6b2e54c8c4c6e5f9.tar.xz dexon-solidity-d1e1293fbd852149edfd03fd6b2e54c8c4c6e5f9.tar.zst dexon-solidity-d1e1293fbd852149edfd03fd6b2e54c8c4c6e5f9.zip |
Merge pull request #3981 from ethereum/years-suffix
The "year" denomination is deprecated
Diffstat (limited to 'test')
7 files changed, 35 insertions, 19 deletions
diff --git a/test/libsolidity/SolidityNameAndTypeResolution.cpp b/test/libsolidity/SolidityNameAndTypeResolution.cpp index 3081b8f2..a2540302 100644 --- a/test/libsolidity/SolidityNameAndTypeResolution.cpp +++ b/test/libsolidity/SolidityNameAndTypeResolution.cpp @@ -2278,25 +2278,6 @@ BOOST_AUTO_TEST_CASE(explicit_conversion_from_decimal_to_bytesxx) CHECK_SUCCESS_NO_WARNINGS(text); } -BOOST_AUTO_TEST_CASE(combining_hex_and_denomination) -{ - char const* text = R"( - contract Foo { - uint constant x = 0x01 wei; - } - )"; - CHECK_WARNING(text, "Hexadecimal numbers with unit denominations are deprecated."); - - char const* textV050 = R"( - pragma experimental "v0.5.0"; - - contract Foo { - uint constant x = 0x01 wei; - } - )"; - CHECK_ERROR(textV050, TypeError, "Hexadecimal numbers cannot be used with unit denominations."); -} - BOOST_AUTO_TEST_CASE(assigning_value_to_const_variable) { char const* text = R"( diff --git a/test/libsolidity/syntaxTests/denominations/combining_hex_and_denomination.sol b/test/libsolidity/syntaxTests/denominations/combining_hex_and_denomination.sol new file mode 100644 index 00000000..3571e8a9 --- /dev/null +++ b/test/libsolidity/syntaxTests/denominations/combining_hex_and_denomination.sol @@ -0,0 +1,5 @@ +contract C { + uint constant x = 0x01 wei; +} +// ---- +// Warning: (32-40): Hexadecimal numbers with unit denominations are deprecated. You can use an expression of the form "0x1234 * 1 day" instead. diff --git a/test/libsolidity/syntaxTests/denominations/combining_hex_and_denomination_050.sol b/test/libsolidity/syntaxTests/denominations/combining_hex_and_denomination_050.sol new file mode 100644 index 00000000..98865999 --- /dev/null +++ b/test/libsolidity/syntaxTests/denominations/combining_hex_and_denomination_050.sol @@ -0,0 +1,6 @@ +pragma experimental "v0.5.0"; +contract C { + uint constant x = 0x01 wei; +} +// ---- +// TypeError: (62-70): Hexadecimal numbers cannot be used with unit denominations. You can use an expression of the form "0x1234 * 1 day" instead. diff --git a/test/libsolidity/syntaxTests/denominations/denominations.sol b/test/libsolidity/syntaxTests/denominations/denominations.sol new file mode 100644 index 00000000..6d1aa2f3 --- /dev/null +++ b/test/libsolidity/syntaxTests/denominations/denominations.sol @@ -0,0 +1,7 @@ +contract C { + uint constant a = 1 wei + 2 szabo + 3 finney + 4 ether; + uint constant b = 1 seconds + 2 minutes + 3 hours + 4 days + 5 weeks + 6 years; + uint constant c = 2 szabo / 1 seconds + 3 finney * 3 hours; +} +// ---- +// Warning: (142-149): Using "years" as a unit denomination is deprecated. diff --git a/test/libsolidity/syntaxTests/denominations/deprecated_year.sol b/test/libsolidity/syntaxTests/denominations/deprecated_year.sol new file mode 100644 index 00000000..30e86535 --- /dev/null +++ b/test/libsolidity/syntaxTests/denominations/deprecated_year.sol @@ -0,0 +1,5 @@ +contract C { + uint constant a = 3 years; +} +// ---- +// Warning: (32-39): Using "years" as a unit denomination is deprecated. diff --git a/test/libsolidity/syntaxTests/denominations/deprecated_year_050.sol b/test/libsolidity/syntaxTests/denominations/deprecated_year_050.sol new file mode 100644 index 00000000..4baaeaa3 --- /dev/null +++ b/test/libsolidity/syntaxTests/denominations/deprecated_year_050.sol @@ -0,0 +1,6 @@ +pragma experimental "v0.5.0"; +contract C { + uint constant a = 3 years; +} +// ---- +// TypeError: (62-69): Using "years" as a unit denomination is deprecated. diff --git a/test/libsolidity/syntaxTests/denominations/fixed_point_division.sol b/test/libsolidity/syntaxTests/denominations/fixed_point_division.sol new file mode 100644 index 00000000..22331b51 --- /dev/null +++ b/test/libsolidity/syntaxTests/denominations/fixed_point_division.sol @@ -0,0 +1,6 @@ +contract C { + uint constant a = 4 ether / 3 hours; + ufixed constant b = ufixed(4 ether / 3 hours); +} +// ---- +// TypeError: (32-49): Type rational_const 10000000000000000 / 27 is not implicitly convertible to expected type uint256. Try converting to type ufixed256x62 or use an explicit conversion. |