Avatar
Avatar
rintaro
Array 以外でも再現するので (Stringと Int 確認しました)、リテラル系はとりあえずオーバーロード用意しておいたほうが良さそうですね。 とはいえ ユーザ定義の *LiteralExpressible だと失敗しそう。 TypeChecker の人がバグと判断するかはわかりませんが、issueたてていただけるとありがたいです。 @swift-5.8.1 func id<T>(_ val: T) -> T { val } func test(c: Character) { id("").first != c } (edited)
Kishikawa Katsumi 4/11/2023 10:38 AM
https://github.com/apple/swift/issues/65061 報告しました。現象が奇妙だから説明がだいぶ難しかった。
Description When I pass a literal expression as an argument to a generic function and compare its return value to another literal with a binary operator, the == case is not a problem, but ! = cause...