Merge pull request #2910 from ethereum/fallback-restrict-external

Force fallback to be external (experimental 0.5.0 change)
This commit is contained in:
chriseth
2017-09-18 16:38:55 +02:00
committed by GitHub
3 changed files with 39 additions and 1 deletions
@@ -6884,6 +6884,38 @@ BOOST_AUTO_TEST_CASE(tight_packing_literals)
CHECK_WARNING(text, "The type of \"int_const 1\" was inferred as uint8.");
}
BOOST_AUTO_TEST_CASE(non_external_fallback)
{
char const* text = R"(
pragma experimental "v0.5.0";
contract C {
function () external { }
}
)";
CHECK_WARNING(text, "Experimental features are turned on.");
text = R"(
pragma experimental "v0.5.0";
contract C {
function () internal { }
}
)";
CHECK_ERROR(text, TypeError, "Fallback function must be defined as \"external\".");
text = R"(
pragma experimental "v0.5.0";
contract C {
function () private { }
}
)";
CHECK_ERROR(text, TypeError, "Fallback function must be defined as \"external\".");
text = R"(
pragma experimental "v0.5.0";
contract C {
function () public { }
}
)";
CHECK_ERROR(text, TypeError, "Fallback function must be defined as \"external\".");
}
BOOST_AUTO_TEST_SUITE_END()
}