Avatar
sendingとconsumingは直交してるはずなんですよね〜
なのでParamSpecifier::Consumingとは違うParamSpecifier::ImplicitlyCopyableConsumingが必要なんだと思いました。consumingに似て非なるものに同じ用語(consuming)を使っているのが紛らわしのかなと思いました。 transferringを追加したPRにはこう書かれていました。 A transferring parameter is a consuming like param modifier that can be used to transfer values to an async function such that you can transfer the value further. https://github.com/swiftlang/swift/pull/70836 ただ、 I preserve the consuming behavior by making it so that the type checker changes the ParamSpecifier to ImplicitlyCopyableConsuming if we have a default param specifier and transferring is set. https://github.com/swiftlang/swift/pull/71567 ともあるのでconsumingだと言われればそうなのかもしれませんが...w
sendingはそういったセマンティクスを持たないと思うんだよな 検査を静的にマークしてるだけだよなあ


初めは意図していなかったのかもしれませんが、これまでのconsumingだと対応できないことに気付き、結果的に新しいParamSpecifierが必要になってしまったのではないかなあと思いました。