我在一个大型iOS应用程序项目中有许多仅Swift框架的目标。我想探索Swift编译器选项的严格性,以了解它们是否可以带来任何其他好处。
Xcode中有许多警告,但大多数警告似乎与Clang有关。我们可以对Swift编译器执行的等效-Wall或等效操作是什么-Weverything?
一个示例是警告,以防止局部变量出现阴影Apple LLVM 9.0 - Warnings - All languages / Hidden local variables::它位于GCC_WARN_SHADOW = YES幕后,因此不会影响swiftc编译器。
否。C累积了一层又一层的警告,然后出现了像“警告不是“所有警告”的一部分”这样的藤壶,并且编译了很多年,再加上一种语言,它允许执行许多您通常不应该做的事情。
Swift很年轻,并且在短寿命内多次破坏了向后兼容性。还没有足够长的时间就需要奇异的向后兼容选项。C作为警告添加了很多东西,Swift只是违法或要求您明确。
也就是说,绝对已经存在其他警告层。第一组通过静态分析器找到(Xcode中的Cmd-Shift-B),第二组存在于swiftlint之类的工具中,它与C语言中的linters角色相同。 ,随着时间的推移,您可能会看到一些事情从linter转移到编译器。但是我仍然怀疑您是否会看到像GCC(Clang继承的)一样复杂的警告系统。
| 归档时间: |
|
| 查看次数: |
194 次 |
| 最近记录: |