diff options
author | Lu Guanqun <guanqun.lu@gmail.com> | 2015-03-01 11:33:38 +0800 |
---|---|---|
committer | Lu Guanqun <guanqun.lu@gmail.com> | 2015-03-08 22:48:53 +0800 |
commit | 1da211920e04ff385ac429d36ccafd4e10db7281 (patch) | |
tree | 96822577cd1aa8ccd05b022d671d07f1b16f959e /SolidityNameAndTypeResolution.cpp | |
parent | b87c5547a5b9f307c2a0871e537a37508bc4da75 (diff) | |
download | dexon-solidity-1da211920e04ff385ac429d36ccafd4e10db7281.tar dexon-solidity-1da211920e04ff385ac429d36ccafd4e10db7281.tar.gz dexon-solidity-1da211920e04ff385ac429d36ccafd4e10db7281.tar.bz2 dexon-solidity-1da211920e04ff385ac429d36ccafd4e10db7281.tar.lz dexon-solidity-1da211920e04ff385ac429d36ccafd4e10db7281.tar.xz dexon-solidity-1da211920e04ff385ac429d36ccafd4e10db7281.tar.zst dexon-solidity-1da211920e04ff385ac429d36ccafd4e10db7281.zip |
add two overloaded function test cases
Diffstat (limited to 'SolidityNameAndTypeResolution.cpp')
-rw-r--r-- | SolidityNameAndTypeResolution.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/SolidityNameAndTypeResolution.cpp b/SolidityNameAndTypeResolution.cpp index d2ae3f73..d764019e 100644 --- a/SolidityNameAndTypeResolution.cpp +++ b/SolidityNameAndTypeResolution.cpp @@ -1287,6 +1287,31 @@ BOOST_AUTO_TEST_CASE(storage_variable_initialization_with_incorrect_type_string) BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError); } +BOOST_AUTO_TEST_CASE(overloaded_function_cannot_resolve) +{ + char const* sourceCode = R"( + contract test { + function f() returns(uint) { return 1; } + function f(uint a) returns(uint) { return a; } + function g() returns(uint) { return f(3, 5); } + } + )"; + BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError); +} + +BOOST_AUTO_TEST_CASE(ambiguous_overloaded_function) +{ + // literal 1 can be both converted to uint8 and uint8, so it's ambiguous. + char const* sourceCode = R"( + contract test { + function f(uint8 a) returns(uint) { return a; } + function f(uint a) returns(uint) { return 2*a; } + function g() returns(uint) { return f(1); } + } + )"; + BOOST_CHECK_THROW(parseTextAndResolveNames(sourceCode), TypeError); +} + BOOST_AUTO_TEST_SUITE_END() } |