diff options
author | Christian <c@ethdev.com> | 2015-01-20 22:58:04 +0800 |
---|---|---|
committer | Christian <c@ethdev.com> | 2015-01-20 22:58:04 +0800 |
commit | 3ff1c3ec30b013dcd2ba58ebe3277c1c44eb759b (patch) | |
tree | b41721e8628248b3a92e29dca2f4a3a14e95b2b9 /SolidityEndToEndTest.cpp | |
parent | 1fc3c7b4986e79908b44ecb74dc0e650bbf2bd97 (diff) | |
download | dexon-solidity-3ff1c3ec30b013dcd2ba58ebe3277c1c44eb759b.tar dexon-solidity-3ff1c3ec30b013dcd2ba58ebe3277c1c44eb759b.tar.gz dexon-solidity-3ff1c3ec30b013dcd2ba58ebe3277c1c44eb759b.tar.bz2 dexon-solidity-3ff1c3ec30b013dcd2ba58ebe3277c1c44eb759b.tar.lz dexon-solidity-3ff1c3ec30b013dcd2ba58ebe3277c1c44eb759b.tar.xz dexon-solidity-3ff1c3ec30b013dcd2ba58ebe3277c1c44eb759b.tar.zst dexon-solidity-3ff1c3ec30b013dcd2ba58ebe3277c1c44eb759b.zip |
Include virtual function overrides in constructor context.
Diffstat (limited to 'SolidityEndToEndTest.cpp')
-rw-r--r-- | SolidityEndToEndTest.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/SolidityEndToEndTest.cpp b/SolidityEndToEndTest.cpp index cba926d6..cf04edaa 100644 --- a/SolidityEndToEndTest.cpp +++ b/SolidityEndToEndTest.cpp @@ -1610,6 +1610,28 @@ BOOST_AUTO_TEST_CASE(function_usage_in_constructor_arguments) BOOST_CHECK(callContractFunction("getA()") == encodeArgs(2)); } +BOOST_AUTO_TEST_CASE(virtual_function_usage_in_constructor_arguments) +{ + char const* sourceCode = R"( + contract BaseBase { + uint m_a; + function BaseBase(uint a) { + m_a = a; + } + function overridden() returns (uint r) { return 1; } + function g() returns (uint r) { return overridden(); } + } + contract Base is BaseBase(BaseBase.g()) { + } + contract Derived is Base() { + function getA() returns (uint r) { return m_a; } + function overridden() returns (uint r) { return 2; } + } + )"; + compileAndRun(sourceCode, 0, "Derived"); + BOOST_CHECK(callContractFunction("getA()") == encodeArgs(2)); +} + BOOST_AUTO_TEST_CASE(constructor_argument_overriding) { char const* sourceCode = R"( |