This Solidity release adds function types. Use-cases include supplying callbacks for asynchronous or off-chain operations or generic library features (for example map-reduce-style programming). This release also improves the safety of enums and sending Ether to a contract constructor.
Features:
- Function types
- Do-while loops: support for a do <block> while (<expr>); control structure
- Inline assembly: support invalidJumpLabel as a jump label.
- Type checker: now more eagerly searches for a common type of an inline array with mixed types
- Code generator: generates a runtime error when an out-of-range value is converted into an enum type.
Bugfixes:
- Inline assembly: calculate stack height warning correctly even when local variables are used.
- Code generator: check for value transfer in non-payable constructors.
- Parser: disallow empty enum definitions.
- Type checker: disallow conversion between different enum types.
- Interface JSON: do not include trailing new line.
Swarm hash of js compiler: bzzr://de94c41f727124a5b02bd1db087e6bcba19a682c5d89bf3cdaa650e9fdd08403
A big thank you to all contributors who helped make this release possible!
Download the new version of Solidity here.