クラスメソッド社のブログSwift 3.0の変更点まとめを見てて気づいたんですが、SE-0005で提示されている内容詳細が微妙に変化していた。
SE-0005はざっくり言うと、「Objective-C時代のメソッドをSwiftでは変えようぜ」ってな話だけど、そのSwiftでの新しい実装提案の詳細が変わっていた。
言いたいことを図にすると次の通り
Swift2時代のこれあるじゃん
↓
Swift3.0でこうしたい(Acceptedされて色々なブログが紹介したりした)
↓
Swift3.0ではやっぱりこうしようぜ(Implementationになった)
わかりますかね。
具体的にはSE-0005のHistoryを見ると提案が変更されたコミットがそれに当たる。
これを先ほどの流れに合わせると次の通り
func moveToPoint(_: CGPoint) // Swift2時代(これおそらく _ point:って言いたいんだろうな)
↓
func moveTo(_: CGPoint) // Accepted(これもおそらく _ point:って言いたいんだろうな)
↓
func move(to point: CGPoint) // そこからtoが外部引数名になった
Qiitaにある過去の記事、Swiftに今後追加される言語仕様について調べてみたを見るとmoveToの段階でAcceptedされていたのでしょう。
ちなみにmoveTo
が move(to
になったことは大きな違いがありますね。これ比較的良いなというか前置詞のToで終わるのがすごく違和感があって、他のメソッドも直されていて学びがあると思ったので別の記事に書くつもりです。
まとめ
- Acceptedされてからも提案は変わっている
- 提案のステータスはAcceptedになってもImplementedされるときは提案自体修正される
- Acceptedされても詳細は変えられるのであくまでAcceptedのものはそれというスタンスで見ないといけない
つまり「Swift3.0からこうなるから今からそれに従おう」という気持ちはありますが提案の本質がAcceptedされたのであって詳細は変わる、という事を心がけていたいですね。