diff options
author | chriseth <chris@ethereum.org> | 2017-03-02 19:08:17 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-02 19:08:17 +0800 |
commit | 5c411b472b5830efa798309e1e7ed728acafdfa3 (patch) | |
tree | 302b4295d85b4dc12cc53d2e80b778b6fd0b5fb2 /test/libsolidity | |
parent | 6ac2c15c2bbcce77cf60e5a1d6bb78b924609af7 (diff) | |
parent | b832b70e1bf09087005f0e620fa5e20d57fd3310 (diff) | |
download | dexon-solidity-5c411b472b5830efa798309e1e7ed728acafdfa3.tar.gz dexon-solidity-5c411b472b5830efa798309e1e7ed728acafdfa3.tar.zst dexon-solidity-5c411b472b5830efa798309e1e7ed728acafdfa3.zip |
Merge pull request #1728 from ethereum/externalfunctiontypes
Convert reference types to pointers in member function conversion.
Diffstat (limited to 'test/libsolidity')
-rw-r--r-- | test/libsolidity/SolidityNameAndTypeResolution.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/libsolidity/SolidityNameAndTypeResolution.cpp b/test/libsolidity/SolidityNameAndTypeResolution.cpp index bb274614..866bd9aa 100644 --- a/test/libsolidity/SolidityNameAndTypeResolution.cpp +++ b/test/libsolidity/SolidityNameAndTypeResolution.cpp @@ -4736,6 +4736,23 @@ BOOST_AUTO_TEST_CASE(delete_external_function_type_invalid) CHECK_ERROR(text, TypeError, ""); } +BOOST_AUTO_TEST_CASE(external_function_to_function_type_calldata_parameter) +{ + // This is a test that checks that the type of the `bytes` parameter is + // correctly changed from its own type `bytes calldata` to `bytes memory` + // when converting to a function type. + char const* text = R"( + contract C { + function f(function(bytes memory x) external g) { } + function callback(bytes x) external {} + function g() { + f(this.callback); + } + } + )"; + CHECK_SUCCESS(text); +} + BOOST_AUTO_TEST_CASE(external_function_type_to_address) { char const* text = R"( |