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
|
* Type Checker: Properly support overwriting members inherited from ``address`` in a contract
|
||||||
(such as ``balance``, ``transfer``, etc.)
|
(such as ``balance``, ``transfer``, etc.)
|
||||||
* Type Checker: Prevent duplicate event declarations.
|
* Type Checker: Prevent duplicate event declarations.
|
||||||
|
* Type Checker: Do not mark event parameters as shadowing state variables.
|
||||||
|
|
||||||
### 0.4.17 (2017-09-21)
|
### 0.4.17 (2017-09-21)
|
||||||
|
|
||||||
|
@ -647,10 +647,12 @@ void DeclarationRegistrationHelper::registerDeclaration(Declaration& _declaratio
|
|||||||
|
|
||||||
bool warnAboutShadowing = true;
|
bool warnAboutShadowing = true;
|
||||||
// Do not warn about shadowing for structs and enums because their members are
|
// 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 (
|
if (
|
||||||
dynamic_cast<StructDefinition const*>(m_currentScope) ||
|
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;
|
warnAboutShadowing = false;
|
||||||
// Do not warn about the constructor shadowing the contract.
|
// 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);
|
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)
|
BOOST_AUTO_TEST_CASE(callable_crash)
|
||||||
{
|
{
|
||||||
char const* text = R"(
|
char const* text = R"(
|
||||||
|
Loading…
Reference in New Issue
Block a user