solidity
solidity copied to clipboard
v0.6.0 Breaking Changes is missing opcode syntax changes
Page
https://docs.soliditylang.org/en/latest/060-breaking-changes.html
Abstract
v0.6.0 introduced breaking changes to how inline assembly defined opcodes that do not take an argument.
In particular, these opcodes were standalone identifiers in < v0.6.0 and "built in functions" for >= v0.6.0.
The inline assembly documentation was updated in #8022 but it would be preferable to include a relevant note in the v0.6.0 breaking changes document. Displayed via the web: Relevant v0.5.17 Inline assembly docs Updated v0.6.0 docs
This would have made it more likely to lead to bugs where the developer mistakenly thought their contract compatible with v0.5.x and v0.6.x.
E.g. this old Gnosis contract has an incorrect pragma, because it fails in v0.6.x:
gas at L23 would need to be gas() to compile in v0.6.x
https://github.com/safe-global/safe-contracts/blob/1.1.3/contracts/common/SecuredTokenTransfer.sol
Pull request
#13548