This release adds reason strings for compiler-generated reverts if you specify revert-strings debug
or use the setting settings.debug.revertStrings = "debug"
. Furthermore, contract types and enums are now allowed as keys for mappings and the doxygen-style comments are better supported by the AST.
Language Features:
- Allow contract types and enums as keys for mappings.
- Allow function selectors to be used as compile-time constants.
Compiler Features:
- AST: Add a new node for doxygen-style, structured documentation that can be received by contract, function, event and modifier definitions.
- Code Generator: Use
calldatacopy
instead ofcodecopy
to zero out memory past input. - Debug: Provide reason strings for compiler-generated internal reverts when using the
revert-strings
option or thesettings.debug.revertStrings
setting ondebug
mode. - Structured Documentation: Report source locations for structured documentation errors.
- Yul Optimizer: Prune functions that call each other but are otherwise unreferenced.
Bugfixes:
- Assembly Output: Added missing
source
field to legacy assembly json output to complete the source reference. - Parser: Fix an internal error for
abstract
withoutcontract
. - Type Checker: Make invalid calls to uncallable types fatal errors instead of regular.
A big thank you to all contributors who helped make this release possible!
Download the new version of Solidity here.