diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2017-06-27 05:55:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-27 05:55:22 +0800 |
commit | 9d201a086c13b6d6bf036b60aac9e614a5ebc961 (patch) | |
tree | 3cd14891d676fb8718ab0210bc18e8ab4a16d436 /test | |
parent | b0ab9aaee0b4629b08ba2ada7e67b4c5d728fd8c (diff) | |
parent | 6b05bbbbb42dafdbf38661fd9c2c3c3e88a425a2 (diff) | |
download | dexon-solidity-9d201a086c13b6d6bf036b60aac9e614a5ebc961.tar dexon-solidity-9d201a086c13b6d6bf036b60aac9e614a5ebc961.tar.gz dexon-solidity-9d201a086c13b6d6bf036b60aac9e614a5ebc961.tar.bz2 dexon-solidity-9d201a086c13b6d6bf036b60aac9e614a5ebc961.tar.lz dexon-solidity-9d201a086c13b6d6bf036b60aac9e614a5ebc961.tar.xz dexon-solidity-9d201a086c13b6d6bf036b60aac9e614a5ebc961.tar.zst dexon-solidity-9d201a086c13b6d6bf036b60aac9e614a5ebc961.zip |
Merge pull request #2459 from ethereum/noComparisonForSomeTypes
No comparison for some types
Diffstat (limited to 'test')
-rw-r--r-- | test/libsolidity/SolidityNameAndTypeResolution.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/libsolidity/SolidityNameAndTypeResolution.cpp b/test/libsolidity/SolidityNameAndTypeResolution.cpp index a6027812..eb1cf0dc 100644 --- a/test/libsolidity/SolidityNameAndTypeResolution.cpp +++ b/test/libsolidity/SolidityNameAndTypeResolution.cpp @@ -554,6 +554,51 @@ BOOST_AUTO_TEST_CASE(comparison_bitop_precedence) CHECK_SUCCESS(text); } +BOOST_AUTO_TEST_CASE(comparison_of_function_types) +{ + char const* text = R"( + contract C { + function f() returns (bool ret) { + return this.f < this.f; + } + } + )"; + CHECK_ERROR(text, TypeError, "Operator < not compatible"); + text = R"( + contract C { + function f() returns (bool ret) { + return f < f; + } + } + )"; + CHECK_ERROR(text, TypeError, "Operator < not compatible"); + text = R"( + contract C { + function f() returns (bool ret) { + return f == f; + } + function g() returns (bool ret) { + return f != f; + } + } + )"; + CHECK_SUCCESS(text); +} + +BOOST_AUTO_TEST_CASE(comparison_of_mapping_types) +{ + char const* text = R"( + contract C { + mapping(uint => uint) x; + function f() returns (bool ret) { + var y = x; + return x == y; + } + } + )"; + CHECK_ERROR(text, TypeError, "Operator == not compatible"); +} + BOOST_AUTO_TEST_CASE(function_no_implementation) { ASTPointer<SourceUnit> sourceUnit; |