Xcode 14 beta 4 - 即使使用 @discardableResult 时也会发出有关未使用返回值的警告

Rud*_*dog 7 xcode ios swift

在 Xcode 14 beta 4(也许还有更早的 beta 版本,但我没有检查)中,我看到有关未使用的返回值的警告,即使这些方法用@discardableResult. 这些警告仅针对async方法,并且据我所知,仅在UIKit类的扩展中出现:

import UIKit

extension UIView {
  @discardableResult
  func discardableUIKit() async -> Int {
    42
  }

  @discardableResult
  func discardableUIKit() -> Int {
    42
  }
}

extension NSObject {
  @discardableResult
  func discardableNSObject() async -> Int {
    42
  }

  @discardableResult
  func discardableNSObject() -> Int {
    42
  }
}

extension NSNumber {
  @discardableResult
  func discardableNSNumber() async -> Int {
    42
  }

  @discardableResult
  func discardableNSNumber() -> Int {
    42
  }
}

func test() {
  UIView().discardableUIKit()
  NSNumber().discardableNSObject()
  NSNumber().discardableNSNumber()
  Task {
    await UIView().discardableUIKit() // Result of call to function returning 'Int' is unused
    await NSNumber().discardableNSObject()
    await NSNumber().discardableNSNumber()
  }
}
Run Code Online (Sandbox Code Playgroud)

我在 Xcode 13 中没有看到这些警告。这是一个错误还是 Xcode 14/Swift 5.7 中我不知道的新内容?

更新

正如评论中提到的,这是 Swift 5.7 的一个错误,会影响任何用@MainActor. 据推测,它会在 GM 发布之前修复,但它仍然存在于 Xcode 14 beta 5 中。