Feature #1968

Looser splat for 1.8

Added by Shyouhei Urabe over 2 years ago. Updated 10 months ago.

[ruby-dev:39147]
Status:Closed Start date:08/21/2009
Priority:Low Due date:
Assignee:Akinori MUSHA % Done:

100%

Category:core
Target version:Ruby 1.8.8

Description

1.8でも *a, b = c とか書けるようにするのはどうでしょうか。実装を(redmineに)貼っておきます。

ただsplatの文法をNODEの種類を増やさずに(i.e.バイナリ互換性を保ちつつ)、かつ、1.8の多値のセマンティクスを守ったままで(i.e.後方互換性を保ちつつ)、実装するのは不可能に思われるため、とりあえずparseはできるけど実行しようとするとエラーになる実装にしてみました(つまり、SyntaxErrorがparse時じゃなくて評価時に出る)。どんなもんでしょう。

あ、test-allはおおむね通ってそうです。

looser_args.patch (17.5 kB) Shyouhei Urabe, 08/21/2009 01:54 am

History

Updated by Akinori MUSHA over 2 years ago

おー、私の手元にもやりかけのがありました。方針はこれでいいと思います。

例外は専用のもの(SyntaxErrorのサブクラス)を作るかどうか迷うところですが、ひとまずテストが問題なければ入れてください。

Updated by Shyouhei Urabe over 2 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100
Applied in changeset r24695.

Also available in: Atom PDF