mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Merge pull request #3025 from federicobond/avoid-event-shadowing
Do not consider shadowing in variable names inside event declarations
This commit is contained in:
		
						commit
						995b5525a0
					
				| @ -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