Swift 为什么编译器在标记为@discardableResult的函数上警告未使用的结果?

Swift 为什么编译器在标记为@discardableResult的函数上警告未使用的结果?,swift,Swift,Swift 3编译器正在警告我有未使用的结果,尽管我已经用@discardableResult标记了该函数 它仅在使用?语法对可选变量调用函数时发生 为了简化这个问题,我创建了这个示例代码。(我不得不把它放在一个项目中,因为警告没有出现在操场上。) 这是一个已知的bug(),尽管Swift帮派似乎认为它已经解决了。也许修复程序还没有进入Xcode,或者他们只是错了 更新我们得到了官方消息:修复程序将从Xcode 8.3开始出现 已知错误,但声称已解决。如果不是的话,你应该告诉他们。虽然也许这一个

Swift 3编译器正在警告我有未使用的结果,尽管我已经用
@discardableResult
标记了该函数

它仅在使用
语法对可选变量调用函数时发生

为了简化这个问题,我创建了这个示例代码。(我不得不把它放在一个项目中,因为警告没有出现在操场上。)

这是一个已知的bug(),尽管Swift帮派似乎认为它已经解决了。也许修复程序还没有进入Xcode,或者他们只是错了


更新我们得到了官方消息:修复程序将从Xcode 8.3开始出现

已知错误,但声称已解决。如果不是的话,你应该告诉他们。虽然也许这一个(我的)是要评论的:谢谢你,@matt。行!我们得到了答案!修复程序将在Xcode 8.3中。
class Foo {
    @discardableResult func bar() -> String? {
        return "bar"
    }
}

class Tester {
    func doSomething() {
        var foo: Foo?

        foo = Foo()

        foo?.bar() //Warning: Expression of type 'String?' is unused
        foo!.bar() //No warning
    }
}