Parsing and type checking of libraries without inheritance.

This commit is contained in:
chriseth
2015-09-11 15:21:37 +02:00
parent c5b6d9d2a9
commit 337fde9d11
8 changed files with 85 additions and 13 deletions
@@ -2194,6 +2194,39 @@ BOOST_AUTO_TEST_CASE(string_bytes_conversion)
BOOST_CHECK_NO_THROW(parseTextAndResolveNames(text));
}
BOOST_AUTO_TEST_CASE(inheriting_from_library)
{
char const* text = R"(
library Lib {}
contract Test is Lib {}
)";
BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError);
}
BOOST_AUTO_TEST_CASE(inheriting_library)
{
char const* text = R"(
contract Test {}
library Lib is Test {}
)";
BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError);
}
BOOST_AUTO_TEST_CASE(library_having_variables)
{
char const* text = R"(
library Lib { uint x; }
)";
BOOST_CHECK_THROW(parseTextAndResolveNames(text), TypeError);
}
BOOST_AUTO_TEST_CASE(valid_library)
{
char const* text = R"(
library Lib { uint constant x = 9; }
)";
BOOST_CHECK_NO_THROW(parseTextAndResolveNames(text));
}
BOOST_AUTO_TEST_CASE(creating_contract_within_the_contract)
{
+10
View File
@@ -924,6 +924,16 @@ BOOST_AUTO_TEST_CASE(empty_comment)
BOOST_CHECK_NO_THROW(parseText(text));
}
BOOST_AUTO_TEST_CASE(library_simple)
{
char const* text = R"(
library Lib {
function f() { }
}
)";
BOOST_CHECK_NO_THROW(parseText(text));
}
BOOST_AUTO_TEST_SUITE_END()
}