将* some *警告视为Swift中的错误?

时间:2016-08-30 19:26:35

标签: swift xcode gcc compiler-errors compiler-warnings

想象一下我在Swift中的mark the following method deprecated

@available(*, deprecated=1.0)
func myFunc() { 
    // ...
}

treat warnings as errors in Swift设置OTHER_SWIFT_FLAGS="-warnings-as-errors"

如何将这些弃用通知显示为警告,同时仍将其余警告视为错误?

这个问题似乎是GCC had a pretty good solution

-Werror // treat all warnings as errors
-Wno-error=<warning> // don't treat <warning> as error (e.g. -Wno-error=switch)
-Werror=<warning> // treat <warning> as error

因此,如果这是Objective-C,我可以简单地使用-Werror -Wno-error=deprecated-declarations并获得我想要的内容。

Swift的等价物是什么?

我尝试将-Wno-error=deprecated-declarations添加到OTHER_SWIFT_FLAGS,但似乎它不适用于Swift,所以它不起作用。

1 个答案:

答案 0 :(得分:3)

这是不可能的。从Swift 4开始,Swift编译器没有开关来启用/禁用特定警告或提升错误的特定警告。

Swift核心开发人员表示他们不愿意在swift-evolution邮件列表上多次添加一连串的编译器标志。理由是他们希望保留Swift的单一“方言”,以便每个开发人员都使用相同的语言功能等。

这是否应该扩展到特定警告标志之类的东西当然值得商榷,但这是目前的官方立场。这些规则在未来可能会有所松动,但我绝不会赌它。