[ruby-core:96841] [Ruby master Feature#16494] Allow hash unpacking in non-lambda Proc
From:
zverok.offline@...
Date:
2020-01-14 07:45:42 UTC
List:
ruby-core #96841
SXNzdWUgIzE2NDk0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgenZlcm9rIChWaWN0b3IgU2hlcGVsZXYp Lg0KDQoNCj4gSSdtIG5lZ2F0aXZlIGJlY2F1c2UgYWxsb3dpbmcgdGhlIGF1dG9tYXRpYyBIYXNo IGNvbnZlcnNpb24gbWFrZXMgdGhlIHNlbWFudGljcyBjb21wbGljYXRlZC4gSG93ZXZlciwgdGhl IGFyZ3VtZW50IHNlbWFudGljcyBvZiBub24tbGFtYmRhIFByb2MgYXJlIGFscmVhZHkgYSBtZXNz IDotKSBTbyBpdCBtaWdodCBiZSBwb3NzaWJsZSwgdGhvdWdoIEkgZG9uJ3QgbGlrZSBpdC4NCg0K SSBkb24ndCB0aGluayBpdCBpcyBhICJtZXNzIi4gSSB0aGluayBpdCBpcyB0aGUgInJpZ2h0IiBr aW5kIG9mIGNvbXBsaWNhdGlvbiB0byBtYWtlIGNvZGUgbW9yZSBlYXN5IHRvIHdyaXRlLiBBcyBJ J3ZlIGFscmVhZHkgd3JpdHRlbiBlbHNld2hlcmUsIHRoZXJlIGlzIGEgbm9uLW5lZ2xlY3RhYmxl IGdhcCBiZXR3ZWVuIHdoYXQgaXMgImNvbnNpc3RlbnQiIGZvciBjb21wdXRlcnMsIGFuZCB3aGF0 IGlzICJjb25zaXN0ZW50IiBmb3IgaHVtYW5zLiANCg0KPiBIb3dldmVyLCB3ZSBuZWVkIHRvIGNv bmZpcm0gaWYgdGhlcmUgYXJlIHNvIG1hbnkgcmVhbC13b3JsZCB1c2UgY2FzZXMgdGhhdCByZWx5 IG9uIHRoZSBvbGQgYmVoYXZpb3IuDQoNCk15IHByb3Bvc2FsLCBpbiBpdHMgZXNzZW5jZSwgaXMg bm90ICJwbGVhc2UgcHJlc2VydmUgdGhlICdvbGQnIGJlaGF2aW9yLCBiZWNhdXNlIG90aGVyd2lz ZSwgaXQgd291bGQgYnJlYWsgc29tZXRoaW5nIi4NCg0KSXQgaXMgInBsZWFzZSBzZWUgdGhpcyBi ZWhhdmlvciBhcyBhIG1vZGVybiBhbmQgY29uc2lzdGVudCB3YXkgdG8gdXNlIFJ1YnksIHdoaWNo IHNob3VsZCBub3QgYmUgYnJva2VuIGJ5IGFyZ3VtZW50IHNlcGFyYXRpb24iLiBOb3Qgc29tZXRo aW5nIHRoYXQgIndlbGwsIGdlbmVyYWxseSwgbm90IHJlY29tbWVuZGVkLCBidXQgeW91IF9jYW5f IGRvIGl0IiwgYnV0IGFzIHNvbWV0aGluZyB0aGF0IGlzIHNlZW4gYXMgYSAiZ29vZCBhbmQgcHJl dHR5IHRoaW5nLCB0aGF0IHNob3VsZCBiZSBwcm9tb3RlZCBhbmQgdXNlZCBtb3JlIi4NCg0KSSBi ZWxpZXZlIEkgYW0gc2hvd2Nhc2luZyBlbm91Z2ggb2YgdGhlIHVzYWJpbGl0eSBvZiB0aGUgInVu cGFja2luZyIgYXBwcm9hY2ggaW4gdGhlIHRpY2tldCBpdHNlbGYgKGFuZCBpdCBpcyBub3QgYXJ0 aWZpY2lhbGx5IGNvbnN0cnVjdGVkLCBqdXN0IGFic3RyYWN0ZWQgYSBiaXQgZXhhbXBsZSBmcm9t IHRoZSByZWFsLXdvcmxkIGFwcCkuIEkgc2VlIHR3byB3YXlzIGl0IGNhbiBiZSByZWZ1dGVkOg0K DQoxLiBTaG93IF9lcXVhbGx5IGNsZWFuIGFuZCBwb3dlcmZ1bF8gd2F5IG9mIGRvaW5nIHRoaW5n cyAod2hpY2gsIEkgYmVsaWV2ZSwgaXMgbm90IHBvc3NpYmxlLCBoZW5jZSB0aGUgdGlja2V0KQ0K Mi4gU2F5ICJpdCBkb2Vzbid0IG1hdHRlciIvImRvZXNuJ3QgbG9vayBiZXR0ZXIiLyJqdXN0IHJl d3JpdGUgaXQgd2l0aCBzZXBhcmF0ZSBtZXRob2RzIiwgd2hpY2ggd2lsbCBiZSB0aGUgZW5kIG9m IHRoZSBkaXNjdXNzaW9uIDopDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCkZlYXR1cmUgIzE2NDk0OiBBbGxvdyBoYXNoIHVucGFja2luZyBpbiBub24tbGFtYmRh IFByb2MNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNjQ5NCNjaGFuZ2UtODM4 NDQNCg0KKiBBdXRob3I6IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2KQ0KKiBTdGF0dXM6IE9wZW4N CiogUHJpb3JpdHk6IE5vcm1hbA0KKiBBc3NpZ25lZTogDQoqIFRhcmdldCB2ZXJzaW9uOiANCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZpcnN0IG9mIGFsbCwgSSBm dWxseSB1bmRlcnN0YW5kIHRoZSB2YWx1ZSBvZiBzZXBhcmF0aW5nICJyZWFsIiBrZXl3b3JkIGFy Z3VtZW50cyBhbmQgZGlzYWxsb3dpbmcgaW1wbGljaXQgYW5kIHVuZXhwZWN0ZWQgY29udmVyc2lv bnMgdG8vZnJvbSBoYXNoZXMuDQoNClRoZXJlIGlzLCB0aG91Z2gsIG9uZSAqKmNvbnZlbmllbnQg c3R5bGUgd2hpY2ggaXMgbm93IGJyb2tlbioqOg0KYGBgcnVieQ0KIyB3b3JkcyBpcyBhcnJheSBv ZiBoYXNoZXM6DQp3b3Jkcw0KICAubWFwIHsgfHRleHQ6LCBwYXJhZ3JhcGhfaWQ6LCAqKnJlc3R8 IA0KICAgIHt0ZXh0OiB0ZXh0LnN0cmlwLCBwYXJhZ3JhcGhfaWQ6IHBhcmFncmFwaF9pZC50b19p LCAqKnJlc3R9DQogIH0NCiAgLnJlamVjdCB7IHx0ZXh0OiwgaXNfcHVuY3R1YXRpb246IGZhbHNl LCAqKnwgdGV4dC5lbmRfd2l0aD8oJyEnKSB8fCBpc19wdW5jdHVhdGlvbiB9DQogIC5jaHVuayB7 IHxwYXJhZ3JhcGhfaWQ6LCB0aW1lc3RhbXA6IDAsICoqfCBbcGFyYWdyYXBoX2lkLCB0aW1lc3Rh bXAgJSA2MF0gfQ0KICAjIC4uLmFuZCBzbyBvbg0KYGBgDQpUaGVyZSBpcyBzZXZlcmFsIGltcG9y dGFudCBlbGVtZW50cyB0byB0aGlzIHN0eWxlLCBtYWtpbmcgaXQgaGFyZCB0byByZXBsYWNlOg0K DQoqIGluZm9ybWF0aXZlIGVycm9ycyBvbiB1bmV4cGVjdGVkIGRhdGEgc3RydWN0dXJlICgibWlz c2luZyBrZXl3b3JkOiB0ZXh0IikNCiogYWJpbGl0eSB0byBwcm92aWRlIGRlZmF1bHQgdmFsdWVz DQoqIGNsZWFyIHNlcGFyYXRpb24gb2YgZGVjbGFyYXRpb24gIndoYXQgdGhpcyBibG9jayBleHBl Y3RzIiAvICJ3aGF0IGl0IGRvZXMgd2l0aCBleHBlY3RlZCBkYXRhIiwgZXNwZWNpYWxseSB2YWx1 YWJsZSBpbiBkYXRhIHByb2Nlc3NpbmcgcGlwZWxpbmVzDQoNCk9uZSBtYXkgYXJndWUgdGhhdCBp biBzb21lIEJpZyBIYWlyeSBWZXJ5IEFyY2hpdGVjdHVyZWQgQXBwbGljYXRpb24geW91IHNob3Vs ZCBpbnN0ZWFkIHdyYXAgZXZlcnl0aGluZyBpbiBvYmplY3RzL2V4dHJhY3QgZXZlcnkgcHJvY2Vz c2luZyBzdGVwIGludG8gbWV0aG9kIG9yIHNlcnZpY2UvZXh0cmFjdCB2YWxpZGF0aW9uIGFzIGEg c2VwYXJhdGUgY29uY2VybiBldGMuLi4gQnV0IGluIHNtYWxsZXIgdXRpbGl0eSBzY3JpcHRzLCBv ciBkZWVwIGluc2lkZSBvZiBjb21wbGljYXRlZCBhbGdvcml0aG1pYyBsaWJyYXJpZXMsIHRoZSBh YmlsaXR5IHRvIHdyaXRlIHNob3J0IGFuZCBjbGVhciBjb2RlIHdpdGggZXhwbGljaXRseSBkZWNs YXJlZCBhbmQgY29udHJvbGxlZCBieSBsYW5ndWFnZSBhcmd1bWVudHMgaXMgcHJldHR5IHZhbHVh YmxlLg0KDQpUaGlzIHN0eWxlIGhhcyAqbm8gY2xlYW4gYWx0ZXJuYXRpdmUqLCBhbGwgcG9zc2li bGUgYWx0ZXJuYXRpdmVzIGFyZSBlaXRoZXIgbGVzcyBwb3dlcmZ1bCBvciBtdWNoIGxlc3MgcmVh ZGFibGUuIENvbXBhcmU6DQoNCmBgYHJ1YnkNCiMgVHJ5IHRvIHJld3JpdGUgdGhpczoNCndvcmRz Lm1hcCB7IHx0ZXh0OiwgcGFyYWdyYXBoX2lkOiwgdGltZXN0YW1wOiAwLCBpc19wdW5jdHVhdGlv bjogZmFsc2V8DQogIGxvZy5pbmZvICJQcm9jZXNzaW5nICN7dGltZXN0YW1wIC8gNjB9IG1pbnV0 ZSINCiAgZnVsbF90ZXh0ID0gaXNfcHVuY3RpYXRpb24gPyB0ZXh0IDogdGV4dCArICcgJw0KICAi PHNwYW4gY2xhc3M9J3dvcmQgcGFyYWdyYXBoLSN7cGFyYWdyYXBoX2lkfScgZGF0YS10aW1lPSN7 dGltZXN0YW1wfSBkYXRhLW9yaWdpbmFsLXRleHQ9I3t0ZXh0fT4je2Z1bGxfdGV4dH08L3NwYW4+ Ig0KfQ0KDQojIEFsdGVybmF0aXZlIHdpdGgganVzdCBoYXNoZXM6DQp3b3Jkcy5tYXAgeyB8d29y ZHwNCiAgIyB0aG9zZSB0d28gdXNlZCBzZXZlcmFsIHRpbWVzDQogIHRleHQgPSB3b3JkLmZldGNo KDp0ZXh0KQ0KICB0aW1lc3RhbXAgPSB3b3JkLmZldGNoKDp0aW1lc3RhbXAsIDApDQogIGxvZy5p bmZvICJQcm9jZXNzaW5nICN7dGltZXN0YW1wIC8gNjB9IG1pbnV0ZSINCiAgIyBBYnNlbnQgaXNf cHVuY3R1YXRpb24gaXMgb2ssIGl0IGRlZmF1bHQgdG8gZmFsc2UNCiAgZnVsbF90ZXh0ID0gd29y ZFs6aXNfcHVuY3RpYXRpb25dID8gdGV4dCA6IHRleHQgKyAnICcNCiAgIjxzcGFuIGNsYXNzPSd3 b3JkIHBhcmFncmFwaC0je3dvcmQuZmV0Y2goOnBhcmFncmFwaF9pZCl9JyBkYXRhLXRpbWU9I3t0 aW1lc3RhbXB9IGRhdGEtb3JpZ2luYWwtdGV4dD0je3RleHR9PiN7ZnVsbF90ZXh0fTwvc3Bhbj4i DQp9DQoNCiMgQWx0ZXJuYXRpdmUgd2l0aCBwYXR0ZXJuLW1hdGNoaW5nOiB0byB1bnBhY2sgdmFy aWFibGVzLCBhbmQgaGFuZGxlIGRlZmF1bHQgdmFsdWVzLCBpdCB3aWxsIGJlIHNvbWV0aGluZyBs aWtlLi4uDQpjYXNlIHdvcmQNCmluIHRleHQ6LCBwYXJhZ3JhcGhfaWQ6LCB0aW1lc3RhbXA6DQog ICMgc2tpcCwganVzdCB1bnBhY2tlZA0KaW4gdGV4dDosIHBhcmFncmFwaF9pZDogIyBubyB0aW1l c3RhbXA6DQogIHRpbWVzdGFtcCA9IDANCmVuZA0KIyBJIGFtIGV2ZW4gbm90IHRyeWluZyB0byBo YW5kbGUgVFdPIGRlZmF1bHQgdmFsdWVzDQpgYGANCg0KQXMgc2hvd24gYWJvdmUsIGBIYXNoI2Zl dGNoYC9gSGFzaCNbXWAgc3R5bGUgbWFrZXMgaXQgbXVjaCBoYXJkZXIgdG8gdW5kZXJzdGFuZCB3 aGF0IGJsb2NrIGV4cGVjdHMgaGFzaCB0byBoYXZlLCBhbmQgaG93IGl0IHVzZXMgaGFzaCBjb21w b25lbnRzIOKAlCBhbmQganVzdCBtYWtlcyB0aGUgY29kZSBsb25nZXIgYW5kIGxlc3MgcGxlYXNh bnQgdG8gd3JpdGUgYW5kIHJlYWQuIFBhdHRlcm4tbWF0Y2hpbmcgKGF0IGxlYXN0IGZvciBub3cp IGlzIGp1c3Qgbm90IHBvd2VyZnVsIGVub3VnaCBmb3IgdGhpcyBwYXJ0aWN1bGFyIGNhc2UgKGl0 IGFsc28gaGFzIG5vbi1pbmZvcm1hdGl2ZSBlcnJvciBtZXNzYWdlcywgYnV0IGl0IG9idmlvdXNs eSBjYW4gYmUgaW1wcm92ZWQpLg0KDQpNeSAqKnByb3Bvc2FsKiogaXMgdG8gKiphbGxvdyBpbXBs aWNpdCBoYXNoIHVucGFja2luZyoqIGludG8ga2V5d29yZCBhcmd1bWVudHMgaW4gKipub24tbGFt YmRhIHByb2NzKiouIEl0IHdvdWxkIGJlICoqY29uc2lzdGVudCoqIHdpdGggaW1wbGljaXQgYXJy YXkgdW5wYWNraW5nLCB3aGljaCBpcyBhbiBpbXBvcnRhbnQgcHJvcGVydHkgb2Ygbm9uLWxhbWJk YSBwcm9jcywgdXNlZnVsIGZvciByZWFzb25zICp2ZXJ5IHNpbWlsYXIgdG8gZGVzY3JpYmVkIGFi b3ZlKi4NCg0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQoKVW5zdWJzY3Jp YmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vi c2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlv bnMvcnVieS1jb3JlPgo=