玖叶教程网

前端编程开发入门

Swift 5.2 改进编译器诊断功能,提供用户更有用的错误信息

Apple 自家力推的编程语言 Swift 推出了 5.2 版本,这个版本的更新重点,在于改进开发者的体验,包括改善编译器诊断信息以及代码完成功能,也增加了除错器的可靠性,同时也改善了 Swift 套件管理器处理相依性的方法。

苹果官方在这个 Swift 更新版,大幅提高了 Swift 编译器错误信息的品质和准确性。过去编译器会试图通过分解表达式,在子表达式中搜索错误,以猜测错误的正确位置。官方解释,这个方法对于只利用子表达式,而无需父表达式信息,就能搜索到的错误才有用,对于其他种类的程序开发错误是无效的。

而由于编译器在遭遇到错误的时候,会遗留一些小线索,这些线索可以让编译器产生更准确的诊断信息,因此从 Swift 5.2 开始,编译器现在会正确的指出发生错误的代码位置,并且提供可供修正的信息,而不会像是在 Swift 5.1 中,错译信息可能含有错误的行数等误导信息,增加开发者除错困难。

Swift 5.2 的代码完成功能也获得改进,官方减少了不必要的类型检查步骤,因而使代码完成功能执行速度提升,在较大的项目中,新版速度为 Xcode 11.3.1 版本的 1.2 到 1.6 倍,还能在不完整的字典字面常数(Dictionary literal)以及不完整的三元表达式,提供隐式成员的名字。而出现在结果中的类型也更容易阅读,必要情况才会列出父类型。

在所有支持的平台,Swift 除错器 LLDB 的运作现在可靠许多。由于除错信息的重建类型信息现在更具弹性,使得除错器可以使用更多关于 Swift 类型的信息。值得注意的是,LLDB 也可以从 DWARF 除错信息中导入 C 和 Objective-C 类型,而不需要从源码编译 Clang 模组。预设情况下,当传统 Clang 模组导入失败时,这个配置将会作为备用路径。

Swift 5.2 中的套件管理器,现在不会解析仅在测试目标中使用的套件相依项目,因而提高了执行性能,同时还减少相依项目冲突的可能性,而且套件管理器现在使用一种新的策略来解析套件相依性,明显提升错误信息的品质,以及复杂套件图中的性能。

编辑:AI智慧

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言