mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Parsing and type checking of libraries without inheritance.
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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()
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user