Solidity v0.6.7 introduces support for EIP-165 via type(InterfaceName).interfaceId.
Language Features:
- Add support for EIP 165 interface identifiers with type(I).interfaceId.
- Allow virtual modifiers inside abstract contracts to have empty body.
Compiler Features:
- Optimizer: Simplify repeated AND and OR operations.
- Option to specify optimization steps to be performed by Yul optimizer with yul-optimizations in the commandline interface or optimizer.details.yulDetails.optimizerSteps in standard-json.
- Standard Json Input: Support the prefix file:// in the field urls.
Bugfixes:
- SMTChecker: Fix internal error when fixed points are used.
- SMTChecker: Fix internal error when using array slices.
- Type Checker: Disallow virtual and override for constructors.
- Type Checker: Fix several internal errors by performing size and recursiveness checks of types before the full type checking.
- Type Checker: Fix internal error when assigning to empty tuples.
- Type Checker: Fix internal error when applying unary operators to tuples with empty components.
- Type Checker: Perform recursiveness check on structs declared at the file level.
Build System:
- soltest.sh: SOLIDITY_BUILD_DIR is no longer relative to REPO_ROOT to allow for build directories outside of the source tree.
A big thank you to all contributors who helped make this release possible!
Download the new version of Solidity here.