mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	The "year" denomination is deprecated
This commit is contained in:
		
							parent
							
								
									75faed7c55
								
							
						
					
					
						commit
						1ac0090f31
					
				| @ -3,6 +3,7 @@ | ||||
| Features: | ||||
|  * Build System: Update internal dependency of jsoncpp to 1.8.4, which introduces more strictness and reduces memory usage. | ||||
|  * Optimizer: Remove unnecessary masking of the result of known short instructions (``ADDRESS``, ``CALLER``, ``ORIGIN`` and ``COINBASE``). | ||||
|  * Type Checker: Deprecate the ``years`` unit denomination and raise a warning for it (or an error as experimental 0.5.0 feature). | ||||
|  * Type Checker: Make literals (without explicit type casting) an error for tight packing as experimental 0.5.0 feature. | ||||
| 
 | ||||
| Bugfixes: | ||||
|  | ||||
| @ -2220,6 +2220,7 @@ void TypeChecker::endVisit(Literal const& _literal) | ||||
| 				"For more information please see https://solidity.readthedocs.io/en/develop/types.html#address-literals" | ||||
| 			); | ||||
| 	} | ||||
| 
 | ||||
| 	if (_literal.isHexNumber() && _literal.subDenomination() != Literal::SubDenomination::None) | ||||
| 	{ | ||||
| 		if (v050) | ||||
| @ -2235,6 +2236,21 @@ void TypeChecker::endVisit(Literal const& _literal) | ||||
| 				"You can use an expression of the form \"0x1234 * 1 day\" instead." | ||||
| 			); | ||||
| 	} | ||||
| 
 | ||||
| 	if (_literal.subDenomination() == Literal::SubDenomination::Year) | ||||
| 	{ | ||||
| 		if (v050) | ||||
| 			m_errorReporter.typeError( | ||||
| 				_literal.location(), | ||||
| 				"Using \"years\" as a unit denomination is deprecated." | ||||
| 			); | ||||
| 		else | ||||
| 			m_errorReporter.warning( | ||||
| 				_literal.location(), | ||||
| 				"Using \"years\" as a unit denomination is deprecated." | ||||
| 			); | ||||
| 	} | ||||
| 
 | ||||
| 	if (!_literal.annotation().type) | ||||
| 		_literal.annotation().type = Type::forLiteral(_literal); | ||||
| 
 | ||||
|  | ||||
| @ -3,3 +3,5 @@ contract C { | ||||
| 	uint constant b = 1 seconds + 2 minutes + 3 hours + 4 days + 5 weeks + 6 years; | ||||
| 	uint constant c = 2 szabo / 1 seconds + 3 finney * 3 hours; | ||||
| } | ||||
| // ---- | ||||
| // Warning: (142-149): Using "years" as a unit denomination is deprecated. | ||||
|  | ||||
| @ -0,0 +1,5 @@ | ||||
| contract C { | ||||
| 	uint constant a = 3 years; | ||||
| } | ||||
| // ---- | ||||
| // Warning: (32-39): Using "years" as a unit denomination is deprecated. | ||||
| @ -0,0 +1,6 @@ | ||||
| pragma experimental "v0.5.0"; | ||||
| contract C { | ||||
| 	uint constant a = 3 years; | ||||
| } | ||||
| // ---- | ||||
| // TypeError: (62-69): Using "years" as a unit denomination is deprecated. | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user