[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==

In This Thread

Prev Next