mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Disallow several indexed attributes for the same event parameter
This commit is contained in:
		
							parent
							
								
									c195782f96
								
							
						
					
					
						commit
						6a0ea174b8
					
				| @ -22,6 +22,7 @@ Compiler Features: | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| Bugfixes: | Bugfixes: | ||||||
|  |  * Parser: Disallow several ``indexed`` attributes for the same event parameter. | ||||||
|  * Yul Optimizer: Hash hex and decimal literals according to their value instead of their representation, improving the detection of equivalent functions. |  * Yul Optimizer: Hash hex and decimal literals according to their value instead of their representation, improving the detection of equivalent functions. | ||||||
|  * Solidity Upgrade Tool ``solidity-upgrade``: Fix the tool returning success code on uncaught exceptions. |  * Solidity Upgrade Tool ``solidity-upgrade``: Fix the tool returning success code on uncaught exceptions. | ||||||
|  * SMTChecker: Fix display error for negative integers that are one more than powers of two. |  * SMTChecker: Fix display error for negative integers that are one more than powers of two. | ||||||
|  | |||||||
| @ -785,7 +785,12 @@ ASTPointer<VariableDeclaration> Parser::parseVariableDeclaration( | |||||||
| 		else | 		else | ||||||
| 		{ | 		{ | ||||||
| 			if (_options.allowIndexed && token == Token::Indexed) | 			if (_options.allowIndexed && token == Token::Indexed) | ||||||
|  | 			{ | ||||||
|  | 				if (isIndexed) | ||||||
|  | 					parserError(5399_error, "Indexed already specified."); | ||||||
|  | 
 | ||||||
| 				isIndexed = true; | 				isIndexed = true; | ||||||
|  | 			} | ||||||
| 			else if (token == Token::Constant || token == Token::Immutable) | 			else if (token == Token::Constant || token == Token::Immutable) | ||||||
| 			{ | 			{ | ||||||
| 				if (mutability != VariableDeclaration::Mutability::Mutable) | 				if (mutability != VariableDeclaration::Mutability::Mutable) | ||||||
|  | |||||||
| @ -0,0 +1,9 @@ | |||||||
|  | contract c { | ||||||
|  |     event e(uint indexed a, bytes3 indexed indexed s, bool indexed indexed indexed b); | ||||||
|  |     event e2(uint indexed indexed a, bytes3 indexed s); | ||||||
|  | } | ||||||
|  | // ---- | ||||||
|  | // ParserError 5399: (56-63): Indexed already specified. | ||||||
|  | // ParserError 5399: (80-87): Indexed already specified. | ||||||
|  | // ParserError 5399: (88-95): Indexed already specified. | ||||||
|  | // ParserError 5399: (126-133): Indexed already specified. | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user