mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Do not consider shadowing in variable names inside event declarations
This commit is contained in:
parent
19274c7890
commit
76d3d24842
@ -11,6 +11,7 @@ Bugfixes:
|
||||
* Type Checker: Properly support overwriting members inherited from ``address`` in a contract
|
||||
(such as ``balance``, ``transfer``, etc.)
|
||||
* Type Checker: Prevent duplicate event declarations.
|
||||
* Type Checker: Do not mark event parameters as shadowing state variables.
|
||||
|
||||
### 0.4.17 (2017-09-21)
|
||||
|
||||
|
@ -647,10 +647,12 @@ void DeclarationRegistrationHelper::registerDeclaration(Declaration& _declaratio
|
||||
|
||||
bool warnAboutShadowing = true;
|
||||
// Do not warn about shadowing for structs and enums because their members are
|
||||
// not accessible without prefixes.
|
||||
// not accessible without prefixes. Also do not warn about event parameters
|
||||
// because they don't participate in any proper scope.
|
||||
if (
|
||||
dynamic_cast<StructDefinition const*>(m_currentScope) ||
|
||||
dynamic_cast<EnumDefinition const*>(m_currentScope)
|
||||
dynamic_cast<EnumDefinition const*>(m_currentScope) ||
|
||||
dynamic_cast<EventDefinition const*>(m_currentScope)
|
||||
)
|
||||
warnAboutShadowing = false;
|
||||
// Do not warn about the constructor shadowing the contract.
|
||||
|
@ -6371,6 +6371,17 @@ BOOST_AUTO_TEST_CASE(function_override_is_not_shadowing)
|
||||
CHECK_SUCCESS_NO_WARNINGS(text);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(event_parameter_cannot_shadow_state_variable)
|
||||
{
|
||||
char const* text = R"(
|
||||
contract C {
|
||||
address a;
|
||||
event E(address a);
|
||||
}
|
||||
)";
|
||||
CHECK_SUCCESS_NO_WARNINGS(text);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(callable_crash)
|
||||
{
|
||||
char const* text = R"(
|
||||
|
Loading…
Reference in New Issue
Block a user