这是 0.5.x 系列的维护版本,修复了编译器中一直存在的一个错误。有些人甚至不认为这是一个错误,这或许可以解释为什么它隐藏了这么久。
派生合约中私有函数可以被同名且类型相同的私有函数覆盖。换句话说,虚拟函数调用机制不尊重可见性。对于在两个不相关的基类合约中(钻石继承)声明的同名且类型相同的两个私有函数,也适用此规则。
此错误已在 0.6.x 系列的 0.6.0 版本中修复,方法是总体上使覆盖机制更加严格。
错误修复
- 类型检查器:不允许覆盖私有函数。
感谢@k06a 报告了此错误!
非常感谢所有帮助使本次发布成为可能的贡献者!
从此处下载 Solidity 的新版本 此处。