[ruby-core:96839] [Ruby master Feature#16494] Allow hash unpacking in non-lambda Proc
From:
mame@...
Date:
2020-01-14 07:21:40 UTC
List:
ruby-core #96839
SXNzdWUgIzE2NDk0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWFtZSAoWXVzdWtlIEVuZG9oKS4NCg0K DQpUaGUgYmFja2dyb3VuZCBvZiB0aGlzIHByb3Bvc2FsOiBodHRwczovL2J1Z3MucnVieS1sYW5n Lm9yZy9pc3N1ZXMvMTQxODMjbm90ZS0xMDENCg0KTXkgcGVyc29uYWwgZmVlbGluZ3MgaXMgdGhl IHNhbWUgYXMgSmVyZW15OyBJJ20gbmVnYXRpdmUgYmVjYXVzZSBhbGxvd2luZyB0aGUgYXV0b21h dGljIEhhc2ggY29udmVyc2lvbiBtYWtlcyB0aGUgc2VtYW50aWNzIGNvbXBsaWNhdGVkLiAgSG93 ZXZlciwgdGhlIGFyZ3VtZW50IHNlbWFudGljcyBvZiBub24tbGFtYmRhIFByb2MgYXJlIGFscmVh ZHkgYSBtZXNzIDotKSAgU28gaXQgbWlnaHQgYmUgcG9zc2libGUsIHRob3VnaCBJIGRvbid0IGxp a2UgaXQuDQoNCkhvd2V2ZXIsIHdlIG5lZWQgdG8gY29uZmlybSBpZiB0aGVyZSBhcmUgc28gbWFu eSByZWFsLXdvcmxkIHVzZSBjYXNlcyB0aGF0IHJlbHkgb24gdGhlIG9sZCBiZWhhdmlvci4gIEN1 cnJlbnRseSwgd2UgaGF2ZSBvbmx5IG9uZSBwcmFjdGljYWwgY2FzZSBmb3VuZCBpbiBydWJvY29w IGluIHRoZSBkaXNjdXNzaW9uIGFib3ZlLCB3aGljaCBoYXMgYmVlbiBhbHJlYWR5IGZpeGVkICh0 aGFua3MgdG8gQGtvaWMhKS4gIElNTywgaXQgaXMgZmFyIGZyb20gZW5vdWdoIHRvIGNoYW5nZSBp dC4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVyZSAj MTY0OTQ6IEFsbG93IGhhc2ggdW5wYWNraW5nIGluIG5vbi1sYW1iZGEgUHJvYw0KaHR0cHM6Ly9i dWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE2NDk0I2NoYW5nZS04Mzg0Mg0KDQoqIEF1dGhvcjog enZlcm9rIChWaWN0b3IgU2hlcGVsZXYpDQoqIFN0YXR1czogT3Blbg0KKiBQcmlvcml0eTogTm9y bWFsDQoqIEFzc2lnbmVlOiANCiogVGFyZ2V0IHZlcnNpb246IA0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmlyc3Qgb2YgYWxsLCBJIGZ1bGx5IHVuZGVyc3RhbmQg dGhlIHZhbHVlIG9mIHNlcGFyYXRpbmcgInJlYWwiIGtleXdvcmQgYXJndW1lbnRzIGFuZCBkaXNh bGxvd2luZyBpbXBsaWNpdCBhbmQgdW5leHBlY3RlZCBjb252ZXJzaW9ucyB0by9mcm9tIGhhc2hl cy4NCg0KVGhlcmUgaXMsIHRob3VnaCwgb25lICoqY29udmVuaWVudCBzdHlsZSB3aGljaCBpcyBu b3cgYnJva2VuKio6DQpgYGBydWJ5DQojIHdvcmRzIGlzIGFycmF5IG9mIGhhc2hlczoNCndvcmRz DQogIC5tYXAgeyB8dGV4dDosIHBhcmFncmFwaF9pZDosICoqcmVzdHwgDQogICAge3RleHQ6IHRl eHQuc3RyaXAsIHBhcmFncmFwaF9pZDogcGFyYWdyYXBoX2lkLnRvX2ksICoqcmVzdH0NCiAgfQ0K ICAucmVqZWN0IHsgfHRleHQ6LCBpc19wdW5jdHVhdGlvbjogZmFsc2UsICoqfCB0ZXh0LmVuZF93 aXRoPygnIScpIHx8IGlzX3B1bmN0dWF0aW9uIH0NCiAgLmNodW5rIHsgfHBhcmFncmFwaF9pZDos IHRpbWVzdGFtcDogMCwgKip8IFtwYXJhZ3JhcGhfaWQsIHRpbWVzdGFtcCAlIDYwXSB9DQogICMg Li4uYW5kIHNvIG9uDQpgYGANClRoZXJlIGlzIHNldmVyYWwgaW1wb3J0YW50IGVsZW1lbnRzIHRv IHRoaXMgc3R5bGUsIG1ha2luZyBpdCBoYXJkIHRvIHJlcGxhY2U6DQoNCiogaW5mb3JtYXRpdmUg ZXJyb3JzIG9uIHVuZXhwZWN0ZWQgZGF0YSBzdHJ1Y3R1cmUgKCJtaXNzaW5nIGtleXdvcmQ6IHRl eHQiKQ0KKiBhYmlsaXR5IHRvIHByb3ZpZGUgZGVmYXVsdCB2YWx1ZXMNCiogY2xlYXIgc2VwYXJh dGlvbiBvZiBkZWNsYXJhdGlvbiAid2hhdCB0aGlzIGJsb2NrIGV4cGVjdHMiIC8gIndoYXQgaXQg ZG9lcyB3aXRoIGV4cGVjdGVkIGRhdGEiLCBlc3BlY2lhbGx5IHZhbHVhYmxlIGluIGRhdGEgcHJv Y2Vzc2luZyBwaXBlbGluZXMNCg0KT25lIG1heSBhcmd1ZSB0aGF0IGluIHNvbWUgQmlnIEhhaXJ5 IFZlcnkgQXJjaGl0ZWN0dXJlZCBBcHBsaWNhdGlvbiB5b3Ugc2hvdWxkIGluc3RlYWQgd3JhcCBl dmVyeXRoaW5nIGluIG9iamVjdHMvZXh0cmFjdCBldmVyeSBwcm9jZXNzaW5nIHN0ZXAgaW50byBt ZXRob2Qgb3Igc2VydmljZS9leHRyYWN0IHZhbGlkYXRpb24gYXMgYSBzZXBhcmF0ZSBjb25jZXJu IGV0Yy4uLiBCdXQgaW4gc21hbGxlciB1dGlsaXR5IHNjcmlwdHMsIG9yIGRlZXAgaW5zaWRlIG9m IGNvbXBsaWNhdGVkIGFsZ29yaXRobWljIGxpYnJhcmllcywgdGhlIGFiaWxpdHkgdG8gd3JpdGUg c2hvcnQgYW5kIGNsZWFyIGNvZGUgd2l0aCBleHBsaWNpdGx5IGRlY2xhcmVkIGFuZCBjb250cm9s bGVkIGJ5IGxhbmd1YWdlIGFyZ3VtZW50cyBpcyBwcmV0dHkgdmFsdWFibGUuDQoNClRoaXMgc3R5 bGUgaGFzICpubyBjbGVhbiBhbHRlcm5hdGl2ZSosIGFsbCBwb3NzaWJsZSBhbHRlcm5hdGl2ZXMg YXJlIGVpdGhlciBsZXNzIHBvd2VyZnVsIG9yIG11Y2ggbGVzcyByZWFkYWJsZS4gQ29tcGFyZToN Cg0KYGBgcnVieQ0KIyBUcnkgdG8gcmV3cml0ZSB0aGlzOg0Kd29yZHMubWFwIHsgfHRleHQ6LCBw YXJhZ3JhcGhfaWQ6LCB0aW1lc3RhbXA6IDAsIGlzX3B1bmN0dWF0aW9uOiBmYWxzZXwNCiAgbG9n LmluZm8gIlByb2Nlc3NpbmcgI3t0aW1lc3RhbXAgLyA2MH0gbWludXRlIg0KICBmdWxsX3RleHQg PSBpc19wdW5jdGlhdGlvbiA/IHRleHQgOiB0ZXh0ICsgJyAnDQogICI8c3BhbiBjbGFzcz0nd29y ZCBwYXJhZ3JhcGgtI3twYXJhZ3JhcGhfaWR9JyBkYXRhLXRpbWU9I3t0aW1lc3RhbXB9IGRhdGEt b3JpZ2luYWwtdGV4dD0je3RleHR9PiN7ZnVsbF90ZXh0fTwvc3Bhbj4iDQp9DQoNCiMgQWx0ZXJu YXRpdmUgd2l0aCBqdXN0IGhhc2hlczoNCndvcmRzLm1hcCB7IHx3b3JkfA0KICAjIHRob3NlIHR3 byB1c2VkIHNldmVyYWwgdGltZXMNCiAgdGV4dCA9IHdvcmQuZmV0Y2goOnRleHQpDQogIHRpbWVz dGFtcCA9IHdvcmQuZmV0Y2goOnRpbWVzdGFtcCwgMCkNCiAgbG9nLmluZm8gIlByb2Nlc3Npbmcg I3t0aW1lc3RhbXAgLyA2MH0gbWludXRlIg0KICAjIEFic2VudCBpc19wdW5jdHVhdGlvbiBpcyBv aywgaXQgZGVmYXVsdCB0byBmYWxzZQ0KICBmdWxsX3RleHQgPSB3b3JkWzppc19wdW5jdGlhdGlv bl0gPyB0ZXh0IDogdGV4dCArICcgJw0KICAiPHNwYW4gY2xhc3M9J3dvcmQgcGFyYWdyYXBoLSN7 d29yZC5mZXRjaCg6cGFyYWdyYXBoX2lkKX0nIGRhdGEtdGltZT0je3RpbWVzdGFtcH0gZGF0YS1v cmlnaW5hbC10ZXh0PSN7dGV4dH0+I3tmdWxsX3RleHR9PC9zcGFuPiINCn0NCg0KIyBBbHRlcm5h dGl2ZSB3aXRoIHBhdHRlcm4tbWF0Y2hpbmc6IHRvIHVucGFjayB2YXJpYWJsZXMsIGFuZCBoYW5k bGUgZGVmYXVsdCB2YWx1ZXMsIGl0IHdpbGwgYmUgc29tZXRoaW5nIGxpa2UuLi4NCmNhc2Ugd29y ZA0KaW4gdGV4dDosIHBhcmFncmFwaF9pZDosIHRpbWVzdGFtcDoNCiAgIyBza2lwLCBqdXN0IHVu cGFja2VkDQppbiB0ZXh0OiwgcGFyYWdyYXBoX2lkOiAjIG5vIHRpbWVzdGFtcDoNCiAgdGltZXN0 YW1wID0gMA0KZW5kDQojIEkgYW0gZXZlbiBub3QgdHJ5aW5nIHRvIGhhbmRsZSBUV08gZGVmYXVs dCB2YWx1ZXMNCmBgYA0KDQpBcyBzaG93biBhYm92ZSwgYEhhc2gjZmV0Y2hgL2BIYXNoI1tdYCBz dHlsZSBtYWtlcyBpdCBtdWNoIGhhcmRlciB0byB1bmRlcnN0YW5kIHdoYXQgYmxvY2sgZXhwZWN0 cyBoYXNoIHRvIGhhdmUsIGFuZCBob3cgaXQgdXNlcyBoYXNoIGNvbXBvbmVudHMg4oCUIGFuZCBq dXN0IG1ha2VzIHRoZSBjb2RlIGxvbmdlciBhbmQgbGVzcyBwbGVhc2FudCB0byB3cml0ZSBhbmQg cmVhZC4gUGF0dGVybi1tYXRjaGluZyAoYXQgbGVhc3QgZm9yIG5vdykgaXMganVzdCBub3QgcG93 ZXJmdWwgZW5vdWdoIGZvciB0aGlzIHBhcnRpY3VsYXIgY2FzZSAoaXQgYWxzbyBoYXMgbm9uLWlu Zm9ybWF0aXZlIGVycm9yIG1lc3NhZ2VzLCBidXQgaXQgb2J2aW91c2x5IGNhbiBiZSBpbXByb3Zl ZCkuDQoNCk15ICoqcHJvcG9zYWwqKiBpcyB0byAqKmFsbG93IGltcGxpY2l0IGhhc2ggdW5wYWNr aW5nKiogaW50byBrZXl3b3JkIGFyZ3VtZW50cyBpbiAqKm5vbi1sYW1iZGEgcHJvY3MqKi4gSXQg d291bGQgYmUgKipjb25zaXN0ZW50Kiogd2l0aCBpbXBsaWNpdCBhcnJheSB1bnBhY2tpbmcsIHdo aWNoIGlzIGFuIGltcG9ydGFudCBwcm9wZXJ0eSBvZiBub24tbGFtYmRhIHByb2NzLCB1c2VmdWwg Zm9yIHJlYXNvbnMgKnZlcnkgc2ltaWxhciB0byBkZXNjcmliZWQgYWJvdmUqLg0KDQoNCg0KLS0g DQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5 LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8v bGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==