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 of codecopy to zero out memory past input.
- Debug: Provide reason strings for compiler-generated internal reverts when using the revert-strings option or the settings.debug.revertStrings setting on debug 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 without contract.
- 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.