treastrain / Tanaka.R
共有ありがとうございます! このツイートの後、一応 any
付与は完遂したのですが、以下の事象に出くわしました(メモ書き形式で雑ですが……) # Xcode 14.3 ## 正しい提案 - `HogeProtocol` → `any HogeProtocol` - `HogeProtocol?` → `(any HogeProtocol)?` - `as HogeProtocol` → `as (any HogeProtocol)`(`as?`・`as!` も同様) - `HogeProtocol.self` → `(any HogeProtocol).self` - `HogeProtocol.Type` → `any HogeProtocol.Type` ## ビルドできなくなる提案(100% 再現) - `HogeProtocol!` を `any HogeProtocol!` にしてしまう - `HogeProtocol?` は `(any HogeProtocol)?` になってくれるのに…… - `HogeProtocol & FugaProtocol` を `any HogeProtocol & any FugaProtocol` にしてしまう - `any HogeProtocol & FugaProtocol` にしてほしい ## ビルドできなくなる提案(ときどき再現) - `HogeProtocol.self` を `(any HogeProtocol).self` にしてくれないときがあった - `any HogeProtocol.self` にしたときがあった - Array でビルドできなくなるときがある - `let arr = [HogeProtocol]()` が `let arr = [any HogeProtocol]()` に置換されたが、「file contains invalid or unrecognized Swift syntax.」と言われてビルドに失敗することがあった - 一度この状況になると clean したりしてもダメだった - 別なプロジェクト等では発生しない - `let dict = [Key: HogeProtocol]()` が `let dict = [Key: any HogeProtocol]()` に置換されたが、「file contains invalid or unrecognized Swift syntax.」と言われてビルドに失敗することがあった - 一度この状況になると clean したりしてもダメだった - 別なプロジェクト等では発生しない