此版本包含三个主要功能和一个优化器中的非常重要的错误修复。
在某些情况下,优化器生成了错误的代码。请在使用代码之前始终测试您的代码,不幸的是,我们无法保证 100% 的正确性。
我们对本版本收到的众多自愿社区贡献表示特别感谢。两位无畏的个人深入研究了 solidity 代码并交付了两个主要功能:非常感谢@VoR0220 提供的内联数组和 @guanqun 提供的三元运算符!此外,@bobsummerwill 花费了大量空闲时间处理 MacOS 和其他平台上的构建问题。其他贡献来自 @axic、@chfast、@ethers、@janx、@pipermerriam 和 @u2。
功能
- 内联数组,即var y = [1,x,f()]; 如果 1、x 和 f() 有一个公共类型。请注意,结果始终是固定长度的内存数组,并且尚无法转换为动态长度的内存数组。
- 导入类似于 ECMAScript6 导入 (import "abc.sol" as d 和 import {x, y} from "abc.sol")。 文档
- 命令行编译器 solc 自动解析丢失的导入并允许“包含目录”。 文档
- 条件/三元运算符:x ? y : z
修复的错误
- 优化器生成无效代码的几个错误。
- 枚举和结构体无法被其他合约访问。
- 修复了与函数参数类型相关的段错误,出现在燃气估算期间。
- 类型检查器因基本构造函数参数数量错误而崩溃。
- 允许具有不同数组类型的函数重载。
- 允许类型为 (x) = 7 的赋值。
- 类型 uint176 不可用。
- 修复了类型检查期间与构造函数调用相关的崩溃。
- 修复了代码生成期间与结构体类型的无效访问器相关的崩溃。
- 修复了代码生成期间与计算结构体类型的哈希值相关的崩溃。
衷心感谢所有帮助使本版本发布成为可能的贡献者!
从 这里下载 Solidity 的新版本。