mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #3613 from ethereum/require-visibility
Issue error if no visibility is specified (on 0.5.0)
This commit is contained in:
@@ -7974,7 +7974,7 @@ BOOST_AUTO_TEST_CASE(no_address_members_on_contract)
|
||||
char const* text = R"(
|
||||
pragma experimental "v0.5.0";
|
||||
contract C {
|
||||
function f() {
|
||||
function f() public {
|
||||
this.balance;
|
||||
}
|
||||
}
|
||||
@@ -7983,7 +7983,7 @@ BOOST_AUTO_TEST_CASE(no_address_members_on_contract)
|
||||
text = R"(
|
||||
pragma experimental "v0.5.0";
|
||||
contract C {
|
||||
function f() {
|
||||
function f() public {
|
||||
this.transfer;
|
||||
}
|
||||
}
|
||||
@@ -7992,7 +7992,7 @@ BOOST_AUTO_TEST_CASE(no_address_members_on_contract)
|
||||
text = R"(
|
||||
pragma experimental "v0.5.0";
|
||||
contract C {
|
||||
function f() {
|
||||
function f() public {
|
||||
this.send;
|
||||
}
|
||||
}
|
||||
@@ -8001,7 +8001,7 @@ BOOST_AUTO_TEST_CASE(no_address_members_on_contract)
|
||||
text = R"(
|
||||
pragma experimental "v0.5.0";
|
||||
contract C {
|
||||
function f() {
|
||||
function f() public {
|
||||
this.call;
|
||||
}
|
||||
}
|
||||
@@ -8010,7 +8010,7 @@ BOOST_AUTO_TEST_CASE(no_address_members_on_contract)
|
||||
text = R"(
|
||||
pragma experimental "v0.5.0";
|
||||
contract C {
|
||||
function f() {
|
||||
function f() public {
|
||||
this.callcode;
|
||||
}
|
||||
}
|
||||
@@ -8019,7 +8019,7 @@ BOOST_AUTO_TEST_CASE(no_address_members_on_contract)
|
||||
text = R"(
|
||||
pragma experimental "v0.5.0";
|
||||
contract C {
|
||||
function f() {
|
||||
function f() public {
|
||||
this.delegatecall;
|
||||
}
|
||||
}
|
||||
@@ -8103,6 +8103,23 @@ BOOST_AUTO_TEST_CASE(getter_is_memory_type)
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(require_visibility_specifiers)
|
||||
{
|
||||
char const* text = R"(
|
||||
contract C {
|
||||
function f() pure { }
|
||||
}
|
||||
)";
|
||||
CHECK_WARNING(text, "No visibility specified. Defaulting to");
|
||||
text = R"(
|
||||
pragma experimental "v0.5.0";
|
||||
contract C {
|
||||
function f() pure { }
|
||||
}
|
||||
)";
|
||||
CHECK_ERROR(text, SyntaxError, "No visibility specified.");
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
}
|
||||
|
||||
@@ -148,7 +148,7 @@ BOOST_AUTO_TEST_CASE(environment_access)
|
||||
BOOST_AUTO_TEST_CASE(view_error_for_050)
|
||||
{
|
||||
CHECK_ERROR(
|
||||
"pragma experimental \"v0.5.0\"; contract C { uint x; function f() view { x = 2; } }",
|
||||
"pragma experimental \"v0.5.0\"; contract C { uint x; function f() view public { x = 2; } }",
|
||||
TypeError,
|
||||
"Function declared as view, but this expression (potentially) modifies the state and thus requires non-payable (the default) or payable."
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user