Avatar
はい。 S: Hashable の場合と同様に、 S: Sendable も明記しなさい、で良いと思うんですけど・・・
12:52 AM
Error に対して親プロトコルの Sendable が後付けされたので、 既存の S: Error where がコンパイル不可能になるのを避けたのかなあ? (edited)
12:58 AM
c++ if (conformance->getSourceKind() == ConformanceEntryKind::Implied && !Proto->isMarkerProtocol()) {
12:58 AM
Implyされたconformance entryに関して、それが marker protocol でなければERROR(conditional_conformances_cannot_imply_conformances,none, "conditional conformance of type %0 to protocol %1 does not imply conformance to " "inherited protocol %2", (Type, Type, Type)) のエラーが出るようになってる。
1:00 AM
Introduce two semantic tweaks for marker protocols: Allow implied conditional conformances to marker protocols. Ban use of marker protocols in conditional conformances to non-marker protocols
1:00 AM
この分岐のパッチあった (edited)
1:00 AM
This improves source compatibility in cases where a marker protocol is introduced after-the-fact (e.g., for Error), and is safe because there's no runtime component to marker protocols.
1:00 AM
あたりだわ
1:00 AM
Errorに関するソース互換性を守るためだ・・・
1:01 AM
「ランタイムの影響が無いから見えないconformanceがあっても実害は無い」という言い訳?も付いてるな。