ruby-trunk-changes 2020-06-07

今日はメソッド引数をまるごと委譲する "..." の記法の前に通常引数を追加して書けるようにする変更や標準添付ライブラリ did_you_mean の更新などがありました。

[e5f5446528] Yuki Nishijima 2020-05-22 21:17:10 UTC

標準添付ライブラリ did_you_mean に upstream からマージしています。

[7cfd6a0bb9] Yuki Nishijima 2020-06-05 04:53:10 UTC

e5f54465284b4505042fca10ace998e1d29c2313 の did_you_mean の変更に伴なって rubyspec の NoMethodError のテストでメッセージの改行の有無を変更しています。

[2a042f08a5] git 2020-06-06 17:02:29 UTC

version.h の日付更新

[6d4ab96c47] Yuki Nishijima 2020-06-06 17:48:24 UTC

ruby の test-all のほうのテストでも NoMethodError のテストを did_you_mean による suggest の有無に依存しないようより robust になるように書きかえています。

[4178cbd297] Yuki Nishijima 2020-06-06 18:13:19 UTC

e5f54465284b4505042fca10ace998e1d29c2313 でうっかり? 入った did_you_mean のメソッド定義字に initialize の typo を指摘したりインスタンス変数の参照の typo をチェックするなどの experimental な機能のための Module 定義を削除しています。

[f8b4340fa2] Jeremy Evans 2020-05-28 18:09:44 UTC

メソッドの引数をまるごと他のメソッド呼び出しに委譲するための m(...) の記法を、メソッド定義時にこの前に通常引数が書けるように文法を拡張しています。 [ruby-core:95993] [Feature #16378]
なるほど。つまり
>|ruby|
def m2(*b)
b
end

def m1(a, ...)
m2(...)
end

m1(0, 1, 2) # => [1, 2]

<

みたいになるわけですね。
さらに委譲呼び出しするほうも
>|ruby|
def m1(...)
m2(:foo, ...)
end
m1 :bar, :baz #=> [:foo, :bar, :baz]

<

のように先頭には追加できるようです。

[fa37a220f6] szTheory 2020-06-04 12:20:51 UTC

Enumerable#slice_when と Enumerable#chunk_while の rdoc 用コメントの typo 修正。

[9d24ddbb53] Ryuta Kamizono 2020-06-06 22:39:41 UTC

benchmark/README.md に書かれていた make benchmark の benchmark ディレクトリの参照の例が間違っていたので修正しています。

[c0ba35f334] Nobuyoshi Nakada 2020-06-01 14:43:31 UTC

f8b4340fa2c254cd093ebc3bc70d2d0c46ea9997 に関連して "..." をトークンにするのに ->() による lambda 記法のかっこの中の lexer state への対応も追加しています。それで気がついたけど lambda の引数には "..." は使えないんですね。