[ruby-core:96848] [Ruby master Feature#16494] Allow hash unpacking in non-lambda Proc
From:
mame@...
Date:
2020-01-14 10:29:47 UTC
List:
ruby-core #96848
SXNzdWUgIzE2NDk0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWFtZSAoWXVzdWtlIEVuZG9oKS4NCg0K DQpJIHJlbWVtYmVyLiAgSSB0YWxrZWQgYWJvdXQgdGhlIGlzc3VlIHdpdGggbWF0eiBiZWZvcmUg Mi43IHJlbGVhc2UsIGFuZCBoZSBzYWlkIGl0IGRvZXMgbm90IG1hdHRlci4gIEhlIG1heSBoYXZl IGNoYW5nZWQgaGlzIG1pbmQsIHNvIEknbGwgY29uZmlybSBoaW0gYXQgdGhlIG5leHQgbWVldGlu Zy4NCg0KSW4gbXkgcGVyc29uYWwgb3BpbmlvbiwgaXQgbWF0dGVycyBpZiB0aGVyZSBhcmUgYWxy ZWFkeSBtYW55IHJlYWwtd29ybGQgdXNlIGNhc2VzLiAgT3RoZXJ3aXNlLCBpdCBkb2VzIG5vdCBt YXR0ZXIuICBJIGd1ZXNzIG1hdHogaGFzIHRoZSBzYW1lIGZlZWxpbmdzLiAgTXkgY3VycmVudCBv YnNlcnZhdGlvbiBpcyB0aGF0IHN1Y2ggYSBjb2RlIGlzIG5vdCBzbyBvZnRlbiB3cml0dGVuLg0K DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGZWF0dXJlICMxNjQ5 NDogQWxsb3cgaGFzaCB1bnBhY2tpbmcgaW4gbm9uLWxhbWJkYSBQcm9jDQpodHRwczovL2J1Z3Mu cnVieS1sYW5nLm9yZy9pc3N1ZXMvMTY0OTQjY2hhbmdlLTgzODUyDQoNCiogQXV0aG9yOiB6dmVy b2sgKFZpY3RvciBTaGVwZWxldikNCiogU3RhdHVzOiBPcGVuDQoqIFByaW9yaXR5OiBOb3JtYWwN CiogQXNzaWduZWU6IA0KKiBUYXJnZXQgdmVyc2lvbjogDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQpGaXJzdCBvZiBhbGwsIEkgZnVsbHkgdW5kZXJzdGFuZCB0aGUg dmFsdWUgb2Ygc2VwYXJhdGluZyAicmVhbCIga2V5d29yZCBhcmd1bWVudHMgYW5kIGRpc2FsbG93 aW5nIGltcGxpY2l0IGFuZCB1bmV4cGVjdGVkIGNvbnZlcnNpb25zIHRvL2Zyb20gaGFzaGVzLg0K DQpUaGVyZSBpcywgdGhvdWdoLCBvbmUgKipjb252ZW5pZW50IHN0eWxlIHdoaWNoIGlzIG5vdyBi cm9rZW4qKjoNCmBgYHJ1YnkNCiMgd29yZHMgaXMgYXJyYXkgb2YgaGFzaGVzOg0Kd29yZHMNCiAg Lm1hcCB7IHx0ZXh0OiwgcGFyYWdyYXBoX2lkOiwgKipyZXN0fCANCiAgICB7dGV4dDogdGV4dC5z dHJpcCwgcGFyYWdyYXBoX2lkOiBwYXJhZ3JhcGhfaWQudG9faSwgKipyZXN0fQ0KICB9DQogIC5y ZWplY3QgeyB8dGV4dDosIGlzX3B1bmN0dWF0aW9uOiBmYWxzZSwgKip8IHRleHQuZW5kX3dpdGg/ KCchJykgfHwgaXNfcHVuY3R1YXRpb24gfQ0KICAuY2h1bmsgeyB8cGFyYWdyYXBoX2lkOiwgdGlt ZXN0YW1wOiAwLCAqKnwgW3BhcmFncmFwaF9pZCwgdGltZXN0YW1wICUgNjBdIH0NCiAgIyAuLi5h bmQgc28gb24NCmBgYA0KVGhlcmUgaXMgc2V2ZXJhbCBpbXBvcnRhbnQgZWxlbWVudHMgdG8gdGhp cyBzdHlsZSwgbWFraW5nIGl0IGhhcmQgdG8gcmVwbGFjZToNCg0KKiBpbmZvcm1hdGl2ZSBlcnJv cnMgb24gdW5leHBlY3RlZCBkYXRhIHN0cnVjdHVyZSAoIm1pc3Npbmcga2V5d29yZDogdGV4dCIp DQoqIGFiaWxpdHkgdG8gcHJvdmlkZSBkZWZhdWx0IHZhbHVlcw0KKiBjbGVhciBzZXBhcmF0aW9u IG9mIGRlY2xhcmF0aW9uICJ3aGF0IHRoaXMgYmxvY2sgZXhwZWN0cyIgLyAid2hhdCBpdCBkb2Vz IHdpdGggZXhwZWN0ZWQgZGF0YSIsIGVzcGVjaWFsbHkgdmFsdWFibGUgaW4gZGF0YSBwcm9jZXNz aW5nIHBpcGVsaW5lcw0KDQpPbmUgbWF5IGFyZ3VlIHRoYXQgaW4gc29tZSBCaWcgSGFpcnkgVmVy eSBBcmNoaXRlY3R1cmVkIEFwcGxpY2F0aW9uIHlvdSBzaG91bGQgaW5zdGVhZCB3cmFwIGV2ZXJ5 dGhpbmcgaW4gb2JqZWN0cy9leHRyYWN0IGV2ZXJ5IHByb2Nlc3Npbmcgc3RlcCBpbnRvIG1ldGhv ZCBvciBzZXJ2aWNlL2V4dHJhY3QgdmFsaWRhdGlvbiBhcyBhIHNlcGFyYXRlIGNvbmNlcm4gZXRj Li4uIEJ1dCBpbiBzbWFsbGVyIHV0aWxpdHkgc2NyaXB0cywgb3IgZGVlcCBpbnNpZGUgb2YgY29t cGxpY2F0ZWQgYWxnb3JpdGhtaWMgbGlicmFyaWVzLCB0aGUgYWJpbGl0eSB0byB3cml0ZSBzaG9y dCBhbmQgY2xlYXIgY29kZSB3aXRoIGV4cGxpY2l0bHkgZGVjbGFyZWQgYW5kIGNvbnRyb2xsZWQg YnkgbGFuZ3VhZ2UgYXJndW1lbnRzIGlzIHByZXR0eSB2YWx1YWJsZS4NCg0KVGhpcyBzdHlsZSBo YXMgKm5vIGNsZWFuIGFsdGVybmF0aXZlKiwgYWxsIHBvc3NpYmxlIGFsdGVybmF0aXZlcyBhcmUg ZWl0aGVyIGxlc3MgcG93ZXJmdWwgb3IgbXVjaCBsZXNzIHJlYWRhYmxlLiBDb21wYXJlOg0KDQpg YGBydWJ5DQojIFRyeSB0byByZXdyaXRlIHRoaXM6DQp3b3Jkcy5tYXAgeyB8dGV4dDosIHBhcmFn cmFwaF9pZDosIHRpbWVzdGFtcDogMCwgaXNfcHVuY3R1YXRpb246IGZhbHNlfA0KICBsb2cuaW5m byAiUHJvY2Vzc2luZyAje3RpbWVzdGFtcCAvIDYwfSBtaW51dGUiDQogIGZ1bGxfdGV4dCA9IGlz X3B1bmN0aWF0aW9uID8gdGV4dCA6IHRleHQgKyAnICcNCiAgIjxzcGFuIGNsYXNzPSd3b3JkIHBh cmFncmFwaC0je3BhcmFncmFwaF9pZH0nIGRhdGEtdGltZT0je3RpbWVzdGFtcH0gZGF0YS1vcmln aW5hbC10ZXh0PSN7dGV4dH0+I3tmdWxsX3RleHR9PC9zcGFuPiINCn0NCg0KIyBBbHRlcm5hdGl2 ZSB3aXRoIGp1c3QgaGFzaGVzOg0Kd29yZHMubWFwIHsgfHdvcmR8DQogICMgdGhvc2UgdHdvIHVz ZWQgc2V2ZXJhbCB0aW1lcw0KICB0ZXh0ID0gd29yZC5mZXRjaCg6dGV4dCkNCiAgdGltZXN0YW1w ID0gd29yZC5mZXRjaCg6dGltZXN0YW1wLCAwKQ0KICBsb2cuaW5mbyAiUHJvY2Vzc2luZyAje3Rp bWVzdGFtcCAvIDYwfSBtaW51dGUiDQogICMgQWJzZW50IGlzX3B1bmN0dWF0aW9uIGlzIG9rLCBp dCBkZWZhdWx0IHRvIGZhbHNlDQogIGZ1bGxfdGV4dCA9IHdvcmRbOmlzX3B1bmN0aWF0aW9uXSA/ IHRleHQgOiB0ZXh0ICsgJyAnDQogICI8c3BhbiBjbGFzcz0nd29yZCBwYXJhZ3JhcGgtI3t3b3Jk LmZldGNoKDpwYXJhZ3JhcGhfaWQpfScgZGF0YS10aW1lPSN7dGltZXN0YW1wfSBkYXRhLW9yaWdp bmFsLXRleHQ9I3t0ZXh0fT4je2Z1bGxfdGV4dH08L3NwYW4+Ig0KfQ0KDQojIEFsdGVybmF0aXZl IHdpdGggcGF0dGVybi1tYXRjaGluZzogdG8gdW5wYWNrIHZhcmlhYmxlcywgYW5kIGhhbmRsZSBk ZWZhdWx0IHZhbHVlcywgaXQgd2lsbCBiZSBzb21ldGhpbmcgbGlrZS4uLg0KY2FzZSB3b3JkDQpp biB0ZXh0OiwgcGFyYWdyYXBoX2lkOiwgdGltZXN0YW1wOg0KICAjIHNraXAsIGp1c3QgdW5wYWNr ZWQNCmluIHRleHQ6LCBwYXJhZ3JhcGhfaWQ6ICMgbm8gdGltZXN0YW1wOg0KICB0aW1lc3RhbXAg PSAwDQplbmQNCiMgSSBhbSBldmVuIG5vdCB0cnlpbmcgdG8gaGFuZGxlIFRXTyBkZWZhdWx0IHZh bHVlcw0KYGBgDQoNCkFzIHNob3duIGFib3ZlLCBgSGFzaCNmZXRjaGAvYEhhc2gjW11gIHN0eWxl IG1ha2VzIGl0IG11Y2ggaGFyZGVyIHRvIHVuZGVyc3RhbmQgd2hhdCBibG9jayBleHBlY3RzIGhh c2ggdG8gaGF2ZSwgYW5kIGhvdyBpdCB1c2VzIGhhc2ggY29tcG9uZW50cyDigJQgYW5kIGp1c3Qg bWFrZXMgdGhlIGNvZGUgbG9uZ2VyIGFuZCBsZXNzIHBsZWFzYW50IHRvIHdyaXRlIGFuZCByZWFk LiBQYXR0ZXJuLW1hdGNoaW5nIChhdCBsZWFzdCBmb3Igbm93KSBpcyBqdXN0IG5vdCBwb3dlcmZ1 bCBlbm91Z2ggZm9yIHRoaXMgcGFydGljdWxhciBjYXNlIChpdCBhbHNvIGhhcyBub24taW5mb3Jt YXRpdmUgZXJyb3IgbWVzc2FnZXMsIGJ1dCBpdCBvYnZpb3VzbHkgY2FuIGJlIGltcHJvdmVkKS4N Cg0KTXkgKipwcm9wb3NhbCoqIGlzIHRvICoqYWxsb3cgaW1wbGljaXQgaGFzaCB1bnBhY2tpbmcq KiBpbnRvIGtleXdvcmQgYXJndW1lbnRzIGluICoqbm9uLWxhbWJkYSBwcm9jcyoqLiBJdCB3b3Vs ZCBiZSAqKmNvbnNpc3RlbnQqKiB3aXRoIGltcGxpY2l0IGFycmF5IHVucGFja2luZywgd2hpY2gg aXMgYW4gaW1wb3J0YW50IHByb3BlcnR5IG9mIG5vbi1sYW1iZGEgcHJvY3MsIHVzZWZ1bCBmb3Ig cmVhc29ucyAqdmVyeSBzaW1pbGFyIHRvIGRlc2NyaWJlZCBhYm92ZSouDQoNCg0KDQotLSANCmh0 dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29y ZS1yZXF1ZXN0QHJ1YnktbGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0 cy5ydWJ5LWxhbmcub3JnL2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K