diff options
author | Liana Husikyan <liana@ethdev.com> | 2015-03-26 21:11:24 +0800 |
---|---|---|
committer | Liana Husikyan <liana@ethdev.com> | 2015-03-26 21:11:24 +0800 |
commit | 25e4cf071adc3bd54f5603b86e332efe06b2d371 (patch) | |
tree | 8dda9fe8a30399844b0b08cf4f68e5a8dc17bc57 | |
parent | ae0fa99123ba647c97f2f57d4590531b9f5f7364 (diff) | |
download | dexon-solidity-25e4cf071adc3bd54f5603b86e332efe06b2d371.tar dexon-solidity-25e4cf071adc3bd54f5603b86e332efe06b2d371.tar.gz dexon-solidity-25e4cf071adc3bd54f5603b86e332efe06b2d371.tar.bz2 dexon-solidity-25e4cf071adc3bd54f5603b86e332efe06b2d371.tar.lz dexon-solidity-25e4cf071adc3bd54f5603b86e332efe06b2d371.tar.xz dexon-solidity-25e4cf071adc3bd54f5603b86e332efe06b2d371.tar.zst dexon-solidity-25e4cf071adc3bd54f5603b86e332efe06b2d371.zip |
two more tests
style fixes
-rw-r--r-- | SolidityNameAndTypeResolution.cpp | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/SolidityNameAndTypeResolution.cpp b/SolidityNameAndTypeResolution.cpp index 75a91224..6b991654 100644 --- a/SolidityNameAndTypeResolution.cpp +++ b/SolidityNameAndTypeResolution.cpp @@ -418,9 +418,23 @@ BOOST_AUTO_TEST_CASE(function_external_types) } } -BOOST_AUTO_TEST_CASE(function_external_call_conversion) +BOOST_AUTO_TEST_CASE(function_external_call_allowed_conversion) { - char const* sourceCode = R"( + char const* text = R"( + contract C {} + contract Test { + function externalCall() { + C arg; + this.g(arg); + } + function g (C c) external {} + })"; + BOOST_CHECK_NO_THROW(parseTextAndResolveNames(text)); +} + +BOOST_AUTO_TEST_CASE(function_external_call_not_allowed_conversion) +{ + char const* text = R"( contract C {} contract Test { function externalCall() { @@ -429,10 +443,26 @@ BOOST_AUTO_TEST_CASE(function_external_call_conversion) } function g (C c) external {} })"; - BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError); + BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError); +} + +BOOST_AUTO_TEST_CASE(function_internal_allowed_conversion) +{ + char const* text = R"( + contract C { + uint a; + } + contract Test { + C a; + function g (C c) {} + function internalCall() { + g(a); + } + })"; + BOOST_CHECK_NO_THROW(parseTextAndResolveNames(text)); } -BOOST_AUTO_TEST_CASE(function_internal_call_conversion) +BOOST_AUTO_TEST_CASE(function_internal_not_allowed_conversion) { char const* text = R"( contract C { |