aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiana Husikyan <liana@ethdev.com>2015-03-26 21:11:24 +0800
committerLiana Husikyan <liana@ethdev.com>2015-03-26 21:11:24 +0800
commit25e4cf071adc3bd54f5603b86e332efe06b2d371 (patch)
tree8dda9fe8a30399844b0b08cf4f68e5a8dc17bc57
parentae0fa99123ba647c97f2f57d4590531b9f5f7364 (diff)
downloaddexon-solidity-25e4cf071adc3bd54f5603b86e332efe06b2d371.tar.gz
dexon-solidity-25e4cf071adc3bd54f5603b86e332efe06b2d371.tar.zst
dexon-solidity-25e4cf071adc3bd54f5603b86e332efe06b2d371.zip
two more tests
style fixes
-rw-r--r--SolidityNameAndTypeResolution.cpp38
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 {