[ruby-core:77273] [Ruby trunk Bug#12521] Syntax for retrieving argument without removing it from double-splat catch-all
From:
kakyoin.hierophant@...
Date:
2016-09-14 12:57:07 UTC
List:
ruby-core #77273
SXNzdWUgIzEyNTIxIGhhcyBiZWVuIHVwZGF0ZWQgYnkgVG9tb2hpcm8gSGFzaGlkYXRlLgoKCkkg d2FudCB0aGlzIGZlYXR1cmUuCktleXdvcmQgYXJndW1lbnQgaXMgc2FmZXIgYW5kIG1vcmUgZXhw bGFuYXRvcnkgdGhhbiBzcGxhdCBzdHlsZS4KQnV0IEkgc29tZXRpbWVzIHdhbnQgdG8gcGFzcyB3 aG9sZSBhcmd1bWVudHMgdG8gb3RoZXIgbWV0aG9kcy4KCkV4YW1wbGUuCkNMSSBnZW0gdGhhdCB1 c2VzIEFXUyBhcGkgYW5kIGFjY2VwdHMgYXBpIGtleSwgc2VjcmV0IGtleSwgcmVnaW9uLCBhbmQg ZW5kcG9pbnQgYXMgY29tbWFuZCBvcHRpb25zLgoKfn5+IHJ1YnkKY2xhc3MgS01TCiAgZGVmIGlu aXRpYWxpemUoa2V5X2lkLCByZWdpb246LCBhY2Nlc3Nfa2V5X2lkOiBuaWwsIHNlY3JldF9hY2Nl c3Nfa2V5OiBuaWwpCiAgICBAY2xpZW50ID0gQXdzOjpLTVM6OkNsaWVudC5uZXcoewogICAgICBy ZWdpb246IHJlZ2lvbiwKICAgICAgYWNjZXNzX2tleV9pZDogYWNjZXNzX2tleV9pZCwKICAgICAg c2VjcmV0X2FjY2Vzc19rZXk6IHNlY3JldF9hY2Nlc3Nfa2V5LAogICAgfSkKICAgIEBrZXlfaWQg PSBrZXlfaWQKICBlbmQKCiAgZGVmIGVuY3J5cHQodmFsdWUpCiAgICByZXNwID0gQGNsaWVudC5l bmNyeXB0KGtleV9pZDogQGtleV9pZCwgcGxhaW50ZXh0OiBZQU1MLmR1bXAodmFsdWUpKQogICAg QmFzZTY0LnN0cmljdF9lbmNvZGU2NChyZXNwLmNpcGhlcnRleHRfYmxvYikKICBlbmQKCiAgZGVm IGRlY3J5cHQodmFsdWUpCiAgICByZXNwID0gQGNsaWVudC5kZWNyeXB0KGNpcGhlcnRleHRfYmxv YjogQmFzZTY0LnN0cmljdF9kZWNvZGU2NCh2YWx1ZSkpCiAgICBZQU1MLmxvYWQocmVzcC5wbGFp bnRleHQpCiAgZW5kCmVuZAp+fn4KCklmIEkgY2FuIHVzZSBgX19rZXlhcmdzX19gICh0ZW50YXRp dmUgbmFtZSksIEkgY2FuIG9taXQgcmVkdW5kYW50IGxpbmVzLgoKfn5+IHJ1YnkKY2xhc3MgS01T CiAgZGVmIGluaXRpYWxpemUoa2V5X2lkLCByZWdpb246LCBhY2Nlc3Nfa2V5X2lkOiBuaWwsIHNl Y3JldF9hY2Nlc3Nfa2V5OiBuaWwpCiAgICBAY2xpZW50ID0gQXdzOjpLTVM6OkNsaWVudC5uZXco X19rZXlhcmdzX18pICMgc2ltcGxlCiAgICBAa2V5X2lkID0ga2V5X2lkCiAgZW5kCgogICMgLi4u Cn5+fgoKVGhpcyBleGFtcGxlIGhhcyBmZXcgYXJncywgYnV0IEkgc29tZXRpbWVzIG5lZWRzIHNv IG1hbnkgYXJncyB3aGVuIEkga2ljayBjb21wbGljYXRlZCB3ZWIgQVBJLgoKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpCdWcgIzEyNTIxOiBTeW50YXggZm9yIHJldHJp ZXZpbmcgYXJndW1lbnQgd2l0aG91dCByZW1vdmluZyBpdCBmcm9tIGRvdWJsZS1zcGxhdCBjYXRj aC1hbGwKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzEyNTIxI2NoYW5nZS02MDUw MwoKKiBBdXRob3I6IEd1eXJlbiBIb3dlCiogU3RhdHVzOiBDbG9zZWQKKiBQcmlvcml0eTogTm9y bWFsCiogQXNzaWduZWU6IAoqIHJ1YnkgLXY6IAoqIEJhY2twb3J0OiAyLjE6IFVOS05PV04sIDIu MjogVU5LTk9XTiwgMi4zOiBVTktOT1dOCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KVGhlcmUgaXMgYW4gaW50ZXJlc3Rpbmcgc3R5bGUgb2YgcHJvZ3JhbW1pbmcgdGhh dCBpcyAqYWxtb3N0KiByZWFsbHkgZWFzeSB0byBkbyBpbiBSdWJ5LiBJdCB3b3VsZCB3b3JrIGVs ZWdhbnRseSB3aXRoIGEgc2ltcGxlIGNoYW5nZS4gQSBkb3VibGUtY29sb24ga2V5d29yZCBhcmd1 bWVudCBzaG91bGQgYmUgYXZhaWxhYmxlIHRoYXQgd2lsbCBzdGlsbCBsZWF2ZSB0aGUgc2FtZSBh cmd1bWVudCBjYXB0dXJlZCBieSBhIGRvdWJsZS1zcGxhdCBhcmd1bWVudCBpZiBwcmVzZW50LiBX aXRoIHRoaXMgYXZhaWxhYmxlLCBpdCBiZWNvbWVzIGVhc3kgdG8gcGFzcyBkb3duIGEgImNvbnRl eHQiIHRocm91Z2ggYSBjYWxsIGNoYWluLgoKQ29uc2lkZXIgdGhpczoKCmBgYApkZWYgY29udHJv bGxlciBuYW1lOjosICoqY29udGV4dAogIOKApgogIGxvZ190aGVuX3JlbmRlciBzb21ldGhpbmc6 LCBuYW1lOiwgKipjb250ZXh0CmVuZAoKZGVmIGxvZ190aGVuX3JlbmRlciAqKmNvbnRleHQKICBs b2cgY29udGV4dAogIGNvbXBsZXhfbG9naWNfdGhlbl9yZW5kZXIgKipjb250ZXh0CmVuZAoKZGVm IGNvbXBsZXhfbG9naWNfdGhlbl9yZW5kZXIgbmFtZTo6LCAqKmNvbnRleHQK4oCmCkJ1bmNoIG9m IGZ1cnRoZXIgY2FsbHMKCmRlZiByZW5kZXIgbmFtZTo6LCBzb21ldGhpbmc6OiwgKipjb250ZXh0 CiAg4oCmCmVuZApgYGAKCk5vdyBhc3N1bWUgSSBkZWNpZGUgcmVuZGVyIG5lZWRzIGEgZm9vIGFy Z3VtZW50LCB0aGF0IEkgb2J0YWluIGluIG15IGNvbnRyb2xsZXIuIFRoZSBvbmx5IGZ1bmN0aW9u cyB0aGF0IGFyZSBhd2FyZSBvZiBvciBoYXZlIGFueSBuZWVkIGZvciB0aGUgYXJndW1lbnQgYXJl IGNvbnRyb2xsZXIgYW5kIHJlbmRlci4gV2l0aCBmdW5jdGlvbnMgd3JpdHRlbiBpbiB0aGlzIHN0 eWxlLCBJIG9ubHkgbmVlZCB0byBtb2RpZnkgdGhlIHR3byBmdW5jdGlvbnMgdGhhdCBuZWVkIHRv IGtub3cgYWJvdXQgdGhlIGFyZ3VtZW50OgoKYGBgCmRlZiBjb250cm9sbGVyIG5hbWU6OiwgKipj b250ZXh0CiAg4oCmCiAgbG9nX3RoZW5fcmVuZGVyIHNvbWV0aGluZzosIG5hbWU6LCBmb286IGZv b192YWx1ZSwgKipjb250ZXh0CmVuZAoK4oCmIG5vIGNoYW5nZXMg4oCmCgpkZWYgcmVuZGVyIG5h bWU6Oiwgc29tZXRoaW5nOjosIGZvbzo6ICoqY29udGV4dAogIOKApiBub3cgdXNlIGZvbyDigKYK ZW5kCmBgYAoKVGhpcyBpcywgSSBhY2NlcHQsIHVudXN1YWwuIEkndmUgbm90IHNlZW4gYSBsYW5n dWFnZSB0aGF0IG9mZmVycyB0aGlzIHNvcnQgb2YgZmVhdHVyZSAoSSBjYWxsIHRoZW0sIGZvciB2 YXJpb3VzIHJlYXNvbiBJIGRvbid0IGhhdmUgdGltZSB0byBnbyBpbnRvIG5vdywgRlJFU1QgZnVu Y3Rpb25zKS4gSSBjYW4gYmFzaWNhbGx5IGltcGxlbWVudCB0aGlzIG5vdyB3aXRoIGEgZGVjb3Jh dG9yLCBidXQgaXQncyBhIGxpdHRsZSB1Z2x5IGFuZCBzbG93LgoKSXQganVzdCBvY2N1cnJlZCB0 byBtZSB0aGF0IGFuIGFsdGVybmF0aXZlIHdvdWxkIGJlIGEgdHJpcGxlLXNwbGF0IGZpbmFsIGFy Z3VtZW50IChvciBzb21lIHN1Y2gpIHRoYXQgZ2F0aGVycyBhbGwgdGhlIGtleXdvcmRzLgoKVGhl cmUgaXMgYSByZWxhdGVkIHByb2JsZW0gd2l0aCB0aGUgd2F5IGRvdWJsZS1zcGxhdCBhbmQgcmVn dWxhciBrZXl3b3JkIGFyZ3VtZW50cyBpbnRlcmFjdCB0aGF0IHNob3VsZCBiZSBmaXhlZCBhbnl3 YXkuCgoKCi0tIApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8KClVuc3Vic2NyaWJlOiA8bWFp bHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1YnktbGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmliZT4K PGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcub3JnL2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1Ynkt Y29yZT4K