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.