mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #4328 from ethereum/disallow-years
[BREAKING] Disallow the years unit denomination properly
This commit is contained in:
commit
ae43330b62
@ -10,6 +10,7 @@ Breaking Changes:
|
|||||||
* General: Disallow declaring empty structs.
|
* General: Disallow declaring empty structs.
|
||||||
* General: Disallow raw ``callcode`` (was already deprecated in 0.4.12). It is still possible to use it via inline assembly.
|
* General: Disallow raw ``callcode`` (was already deprecated in 0.4.12). It is still possible to use it via inline assembly.
|
||||||
* General: Disallow ``sha3`` and ``suicide`` aliases.
|
* General: Disallow ``sha3`` and ``suicide`` aliases.
|
||||||
|
* General: Disallow the ``years`` unit denomination (was already deprecated in 0.4.24)
|
||||||
* General: Introduce ``emit`` as a keyword instead of parsing it as identifier.
|
* General: Introduce ``emit`` as a keyword instead of parsing it as identifier.
|
||||||
* General: New keywords: ``calldata``
|
* General: New keywords: ``calldata``
|
||||||
* General: New reserved keywords: ``alias``, ``apply``, ``auto``, ``copyof``, ``define``, ``immutable``,
|
* General: New reserved keywords: ``alias``, ``apply``, ``auto``, ``copyof``, ``define``, ``immutable``,
|
||||||
|
@ -32,7 +32,7 @@ Due to the fact that leap seconds cannot be predicted, an exact calendar
|
|||||||
library has to be updated by an external oracle.
|
library has to be updated by an external oracle.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
The suffix ``years`` has been deprecated due to the reasons above.
|
The suffix ``years`` has been deprecated due to the reasons above and cannot be used starting version 0.5.0.
|
||||||
|
|
||||||
These suffixes cannot be applied to variables. If you want to
|
These suffixes cannot be applied to variables. If you want to
|
||||||
interpret some input variable in e.g. days, you can do it in the following way::
|
interpret some input variable in e.g. days, you can do it in the following way::
|
||||||
|
@ -2316,18 +2316,10 @@ void TypeChecker::endVisit(Literal const& _literal)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (_literal.subDenomination() == Literal::SubDenomination::Year)
|
if (_literal.subDenomination() == Literal::SubDenomination::Year)
|
||||||
{
|
m_errorReporter.typeError(
|
||||||
if (v050)
|
_literal.location(),
|
||||||
m_errorReporter.typeError(
|
"Using \"years\" as a unit denomination is deprecated."
|
||||||
_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)
|
if (!_literal.annotation().type)
|
||||||
_literal.annotation().type = Type::forLiteral(_literal);
|
_literal.annotation().type = Type::forLiteral(_literal);
|
||||||
|
@ -109,7 +109,7 @@ contract GlobalRegistrar is Registrar, AuctionSystem {
|
|||||||
uint renewalDate;
|
uint renewalDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint constant c_renewalInterval = 1 years;
|
uint constant c_renewalInterval = 365 days;
|
||||||
uint constant c_freeBytes = 12;
|
uint constant c_freeBytes = 12;
|
||||||
|
|
||||||
function Registrar() {
|
function Registrar() {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
contract C {
|
contract C {
|
||||||
uint constant a = 1 wei + 2 szabo + 3 finney + 4 ether;
|
uint constant a = 1 wei + 2 szabo + 3 finney + 4 ether;
|
||||||
uint constant b = 1 seconds + 2 minutes + 3 hours + 4 days + 5 weeks + 6 years;
|
uint constant b = 1 seconds + 2 minutes + 3 hours + 4 days + 5 weeks;
|
||||||
uint constant c = 2 szabo / 1 seconds + 3 finney * 3 hours;
|
uint constant c = 2 szabo / 1 seconds + 3 finney * 3 hours;
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning: (142-149): Using "years" as a unit denomination is deprecated.
|
|
||||||
|
@ -2,4 +2,4 @@ contract C {
|
|||||||
uint constant a = 3 years;
|
uint constant a = 3 years;
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// Warning: (32-39): Using "years" as a unit denomination is deprecated.
|
// TypeError: (32-39): Using "years" as a unit denomination is deprecated.
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
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