[ruby-core:77334] [Ruby trunk Bug#12521] Syntax for retrieving argument without removing it from double-splat catch-all
From:
eregontp@...
Date:
2016-09-21 11:13:34 UTC
List:
ruby-core #77334
SXNzdWUgIzEyNTIxIGhhcyBiZWVuIHVwZGF0ZWQgYnkgQmVub2l0IERhbG96ZS4KCgpUb21vaGly byBIYXNoaWRhdGUgd3JvdGU6Cj4gSSB3YW50IHRoaXMgZmVhdHVyZS4KPiBLZXl3b3JkIGFyZ3Vt ZW50IGlzIHNhZmVyIGFuZCBtb3JlIGV4cGxhbmF0b3J5IHRoYW4gc3BsYXQgc3R5bGUuCj4gQnV0 IEkgc29tZXRpbWVzIHdhbnQgdG8gcGFzcyB3aG9sZSBhcmd1bWVudHMgdG8gb3RoZXIgbWV0aG9k cy4KPiAKPiBFeGFtcGxlLgo+IENMSSBnZW0gdGhhdCB1c2VzIEFXUyBhcGkgYW5kIGFjY2VwdHMg YXBpIGtleSwgc2VjcmV0IGtleSwgcmVnaW9uLCBhbmQgZW5kcG9pbnQgYXMgY29tbWFuZCBvcHRp b25zLgo+IAo+IH5+fiBydWJ5Cj4gY2xhc3MgS01TCj4gICBkZWYgaW5pdGlhbGl6ZShrZXlfaWQs IHJlZ2lvbjosIGFjY2Vzc19rZXlfaWQ6IG5pbCwgc2VjcmV0X2FjY2Vzc19rZXk6IG5pbCkKPiAg ICAgQGNsaWVudCA9IEF3czo6S01TOjpDbGllbnQubmV3KHsKPiAgICAgICByZWdpb246IHJlZ2lv biwKPiAgICAgICBhY2Nlc3Nfa2V5X2lkOiBhY2Nlc3Nfa2V5X2lkLAo+ICAgICAgIHNlY3JldF9h Y2Nlc3Nfa2V5OiBzZWNyZXRfYWNjZXNzX2tleSwKPiAgICAgfSkKPiAgICAgQGtleV9pZCA9IGtl eV9pZAo+ICAgZW5kCj4gICAjIC4uLgo+IGVuZAo+IH5+fgo+IAo+IElmIEkgY2FuIHVzZSBgX19r ZXlhcmdzX19gICh0ZW50YXRpdmUgbmFtZSksIEkgY2FuIG9taXQgcmVkdW5kYW50IGxpbmVzLgo+ IAo+IH5+fiBydWJ5Cj4gY2xhc3MgS01TCj4gICBkZWYgaW5pdGlhbGl6ZShrZXlfaWQsIHJlZ2lv bjosIGFjY2Vzc19rZXlfaWQ6IG5pbCwgc2VjcmV0X2FjY2Vzc19rZXk6IG5pbCkKPiAgICAgQGNs aWVudCA9IEF3czo6S01TOjpDbGllbnQubmV3KF9fa2V5YXJnc19fKSAjIHNpbXBsZQo+ICAgICBA a2V5X2lkID0ga2V5X2lkCj4gICBlbmQKPiAKPiAgICMgLi4uCj4gfn5+CgpXaHkgaXMgaXQgYmV0 dGVyIHRoYW4gdGhpcz8KCn5+fiBydWJ5CmNsYXNzIEtNUwogIGRlZiBpbml0aWFsaXplKGtleV9p ZCwgKiphdXRoKQogICAgQGNsaWVudCA9IEF3czo6S01TOjpDbGllbnQubmV3KCoqYXV0aCkgIyBz aW1wbGUKICAgIEBrZXlfaWQgPSBrZXlfaWQKICBlbmQKCiAgIyAuLi4Kfn5+CgpJdCBzZWVtcyB0 byBtZSB0aGUgQXdzOjpLTVM6OkNsaWVudCBzaG91bGQgdmFsaWRhdGUgaXRzIGFyZ3VtZW50cyBh bnl3YXksIGFuZCB0aGlzIGFsc28gcmVkdWNlcyBkdXBsaWNhdGlvbi4KSWYgYSBkaWZmZXJlbnQg QVBJIG11c3QgYmUgcHJvdmlkZWQgZm9yIEtNUyNpbml0aWFsaXplLCB0aGVuIEkgdGhpbmsgdGhl IGV4cGxpY2l0IHN0eWxlIGlzIG11Y2ggYmV0dGVyIGFzIGl0J3MgbGVzcyBtYWdpYyBhbmQgZXJy b3ItcHJvbmUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkJ1ZyAj MTI1MjE6IFN5bnRheCBmb3IgcmV0cmlldmluZyBhcmd1bWVudCB3aXRob3V0IHJlbW92aW5nIGl0 IGZyb20gZG91YmxlLXNwbGF0IGNhdGNoLWFsbApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9p c3N1ZXMvMTI1MjEjY2hhbmdlLTYwNTgwCgoqIEF1dGhvcjogR3V5cmVuIEhvd2UKKiBTdGF0dXM6 IENsb3NlZAoqIFByaW9yaXR5OiBOb3JtYWwKKiBBc3NpZ25lZTogCiogcnVieSAtdjogCiogQmFj a3BvcnQ6IDIuMTogVU5LTk9XTiwgMi4yOiBVTktOT1dOLCAyLjM6IFVOS05PV04KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGVyZSBpcyBhbiBpbnRlcmVzdGluZyBz dHlsZSBvZiBwcm9ncmFtbWluZyB0aGF0IGlzICphbG1vc3QqIHJlYWxseSBlYXN5IHRvIGRvIGlu IFJ1YnkuIEl0IHdvdWxkIHdvcmsgZWxlZ2FudGx5IHdpdGggYSBzaW1wbGUgY2hhbmdlLiBBIGRv dWJsZS1jb2xvbiBrZXl3b3JkIGFyZ3VtZW50IHNob3VsZCBiZSBhdmFpbGFibGUgdGhhdCB3aWxs IHN0aWxsIGxlYXZlIHRoZSBzYW1lIGFyZ3VtZW50IGNhcHR1cmVkIGJ5IGEgZG91YmxlLXNwbGF0 IGFyZ3VtZW50IGlmIHByZXNlbnQuIFdpdGggdGhpcyBhdmFpbGFibGUsIGl0IGJlY29tZXMgZWFz eSB0byBwYXNzIGRvd24gYSAiY29udGV4dCIgdGhyb3VnaCBhIGNhbGwgY2hhaW4uCgpDb25zaWRl ciB0aGlzOgoKYGBgcnVieQpkZWYgY29udHJvbGxlciBuYW1lOjosICoqY29udGV4dAogIOKApgog IGxvZ190aGVuX3JlbmRlciBzb21ldGhpbmc6LCBuYW1lOiwgKipjb250ZXh0CmVuZAoKZGVmIGxv Z190aGVuX3JlbmRlciAqKmNvbnRleHQKICBsb2cgY29udGV4dAogIGNvbXBsZXhfbG9naWNfdGhl bl9yZW5kZXIgKipjb250ZXh0CmVuZAoKZGVmIGNvbXBsZXhfbG9naWNfdGhlbl9yZW5kZXIgbmFt ZTo6LCAqKmNvbnRleHQK4oCmCkJ1bmNoIG9mIGZ1cnRoZXIgY2FsbHMKCmRlZiByZW5kZXIgbmFt ZTo6LCBzb21ldGhpbmc6OiwgKipjb250ZXh0CiAg4oCmCmVuZApgYGAKCk5vdyBhc3N1bWUgSSBk ZWNpZGUgcmVuZGVyIG5lZWRzIGEgZm9vIGFyZ3VtZW50LCB0aGF0IEkgb2J0YWluIGluIG15IGNv bnRyb2xsZXIuIFRoZSBvbmx5IGZ1bmN0aW9ucyB0aGF0IGFyZSBhd2FyZSBvZiBvciBoYXZlIGFu eSBuZWVkIGZvciB0aGUgYXJndW1lbnQgYXJlIGNvbnRyb2xsZXIgYW5kIHJlbmRlci4gV2l0aCBm dW5jdGlvbnMgd3JpdHRlbiBpbiB0aGlzIHN0eWxlLCBJIG9ubHkgbmVlZCB0byBtb2RpZnkgdGhl IHR3byBmdW5jdGlvbnMgdGhhdCBuZWVkIHRvIGtub3cgYWJvdXQgdGhlIGFyZ3VtZW50OgoKYGBg cnVieQpkZWYgY29udHJvbGxlciBuYW1lOjosICoqY29udGV4dAogIOKApgogIGxvZ190aGVuX3Jl bmRlciBzb21ldGhpbmc6LCBuYW1lOiwgZm9vOiBmb29fdmFsdWUsICoqY29udGV4dAplbmQKCuKA piBubyBjaGFuZ2VzIOKApgoKZGVmIHJlbmRlciBuYW1lOjosIHNvbWV0aGluZzo6LCBmb286OiAq KmNvbnRleHQKICDigKYgbm93IHVzZSBmb28g4oCmCmVuZApgYGAKClRoaXMgaXMsIEkgYWNjZXB0 LCB1bnVzdWFsLiBJJ3ZlIG5vdCBzZWVuIGEgbGFuZ3VhZ2UgdGhhdCBvZmZlcnMgdGhpcyBzb3J0 IG9mIGZlYXR1cmUgKEkgY2FsbCB0aGVtLCBmb3IgdmFyaW91cyByZWFzb24gSSBkb24ndCBoYXZl IHRpbWUgdG8gZ28gaW50byBub3csIEZSRVNUIGZ1bmN0aW9ucykuIEkgY2FuIGJhc2ljYWxseSBp bXBsZW1lbnQgdGhpcyBub3cgd2l0aCBhIGRlY29yYXRvciwgYnV0IGl0J3MgYSBsaXR0bGUgdWds eSBhbmQgc2xvdy4KCkl0IGp1c3Qgb2NjdXJyZWQgdG8gbWUgdGhhdCBhbiBhbHRlcm5hdGl2ZSB3 b3VsZCBiZSBhIHRyaXBsZS1zcGxhdCBmaW5hbCBhcmd1bWVudCAob3Igc29tZSBzdWNoKSB0aGF0 IGdhdGhlcnMgYWxsIHRoZSBrZXl3b3Jkcy4KClRoZXJlIGlzIGEgcmVsYXRlZCBwcm9ibGVtIHdp dGggdGhlIHdheSBkb3VibGUtc3BsYXQgYW5kIHJlZ3VsYXIga2V5d29yZCBhcmd1bWVudHMgaW50 ZXJhY3QgdGhhdCBzaG91bGQgYmUgZml4ZWQgYW55d2F5LgoKCgotLSAKaHR0cHM6Ly9idWdzLnJ1 YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5 LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9y Zy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==