[ruby-core:96886] [Ruby master Feature#16494] Allow hash unpacking in non-lambda Proc
From:
matz@...
Date:
2020-01-16 05:31:54 UTC
List:
ruby-core #96886
SXNzdWUgIzE2NDk0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWF0eiAoWXVraWhpcm8gTWF0c3Vtb3Rv KS4NCg0KU3RhdHVzIGNoYW5nZWQgZnJvbSBPcGVuIHRvIFJlamVjdGVkDQoNCkkgYWRtaXQgdGhl IHJlY2VudCBjaGFuZ2UgZGlzYWJsZXMgc29tZXRoaW5nIG9uY2Ugd2UgdGhlb3JldGljYWxseSBj b3VsZC4gQnV0IHRoZXJlJ3Mgbm8gYmlnIHVzYWdlIGZvciB0aGlzIHBhcnRpY3VsYXIgZmVhdHVy ZSBhbmQgaXQgZG9lc24ndCB3b3J0aCBhZGRpbmcgZXZlbiBtb3JlIGNvbXBsZXhpdHkuDQoNCk1h dHouDQoNCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVy ZSAjMTY0OTQ6IEFsbG93IGhhc2ggdW5wYWNraW5nIGluIG5vbi1sYW1iZGEgUHJvYw0KaHR0cHM6 Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE2NDk0I2NoYW5nZS04Mzg5OA0KDQoqIEF1dGhv cjogenZlcm9rIChWaWN0b3IgU2hlcGVsZXYpDQoqIFN0YXR1czogUmVqZWN0ZWQNCiogUHJpb3Jp dHk6IE5vcm1hbA0KKiBBc3NpZ25lZTogDQoqIFRhcmdldCB2ZXJzaW9uOiANCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZpcnN0IG9mIGFsbCwgSSBmdWxseSB1bmRl cnN0YW5kIHRoZSB2YWx1ZSBvZiBzZXBhcmF0aW5nICJyZWFsIiBrZXl3b3JkIGFyZ3VtZW50cyBh bmQgZGlzYWxsb3dpbmcgaW1wbGljaXQgYW5kIHVuZXhwZWN0ZWQgY29udmVyc2lvbnMgdG8vZnJv bSBoYXNoZXMuDQoNClRoZXJlIGlzLCB0aG91Z2gsIG9uZSAqKmNvbnZlbmllbnQgc3R5bGUgd2hp Y2ggaXMgbm93IGJyb2tlbioqOg0KYGBgcnVieQ0KIyB3b3JkcyBpcyBhcnJheSBvZiBoYXNoZXM6 DQp3b3Jkcw0KICAubWFwIHsgfHRleHQ6LCBwYXJhZ3JhcGhfaWQ6LCAqKnJlc3R8IA0KICAgIHt0 ZXh0OiB0ZXh0LnN0cmlwLCBwYXJhZ3JhcGhfaWQ6IHBhcmFncmFwaF9pZC50b19pLCAqKnJlc3R9 DQogIH0NCiAgLnJlamVjdCB7IHx0ZXh0OiwgaXNfcHVuY3R1YXRpb246IGZhbHNlLCAqKnwgdGV4 dC5lbmRfd2l0aD8oJyEnKSB8fCBpc19wdW5jdHVhdGlvbiB9DQogIC5jaHVuayB7IHxwYXJhZ3Jh cGhfaWQ6LCB0aW1lc3RhbXA6IDAsICoqfCBbcGFyYWdyYXBoX2lkLCB0aW1lc3RhbXAgJSA2MF0g fQ0KICAjIC4uLmFuZCBzbyBvbg0KYGBgDQpUaGVyZSBpcyBzZXZlcmFsIGltcG9ydGFudCBlbGVt ZW50cyB0byB0aGlzIHN0eWxlLCBtYWtpbmcgaXQgaGFyZCB0byByZXBsYWNlOg0KDQoqIGluZm9y bWF0aXZlIGVycm9ycyBvbiB1bmV4cGVjdGVkIGRhdGEgc3RydWN0dXJlICgibWlzc2luZyBrZXl3 b3JkOiB0ZXh0IikNCiogYWJpbGl0eSB0byBwcm92aWRlIGRlZmF1bHQgdmFsdWVzDQoqIGNsZWFy IHNlcGFyYXRpb24gb2YgZGVjbGFyYXRpb24gIndoYXQgdGhpcyBibG9jayBleHBlY3RzIiAvICJ3 aGF0IGl0IGRvZXMgd2l0aCBleHBlY3RlZCBkYXRhIiwgZXNwZWNpYWxseSB2YWx1YWJsZSBpbiBk YXRhIHByb2Nlc3NpbmcgcGlwZWxpbmVzDQoNCk9uZSBtYXkgYXJndWUgdGhhdCBpbiBzb21lIEJp ZyBIYWlyeSBWZXJ5IEFyY2hpdGVjdHVyZWQgQXBwbGljYXRpb24geW91IHNob3VsZCBpbnN0ZWFk IHdyYXAgZXZlcnl0aGluZyBpbiBvYmplY3RzL2V4dHJhY3QgZXZlcnkgcHJvY2Vzc2luZyBzdGVw IGludG8gbWV0aG9kIG9yIHNlcnZpY2UvZXh0cmFjdCB2YWxpZGF0aW9uIGFzIGEgc2VwYXJhdGUg Y29uY2VybiBldGMuLi4gQnV0IGluIHNtYWxsZXIgdXRpbGl0eSBzY3JpcHRzLCBvciBkZWVwIGlu c2lkZSBvZiBjb21wbGljYXRlZCBhbGdvcml0aG1pYyBsaWJyYXJpZXMsIHRoZSBhYmlsaXR5IHRv IHdyaXRlIHNob3J0IGFuZCBjbGVhciBjb2RlIHdpdGggZXhwbGljaXRseSBkZWNsYXJlZCBhbmQg Y29udHJvbGxlZCBieSBsYW5ndWFnZSBhcmd1bWVudHMgaXMgcHJldHR5IHZhbHVhYmxlLg0KDQpU aGlzIHN0eWxlIGhhcyAqbm8gY2xlYW4gYWx0ZXJuYXRpdmUqLCBhbGwgcG9zc2libGUgYWx0ZXJu YXRpdmVzIGFyZSBlaXRoZXIgbGVzcyBwb3dlcmZ1bCBvciBtdWNoIGxlc3MgcmVhZGFibGUuIENv bXBhcmU6DQoNCmBgYHJ1YnkNCiMgVHJ5IHRvIHJld3JpdGUgdGhpczoNCndvcmRzLm1hcCB7IHx0 ZXh0OiwgcGFyYWdyYXBoX2lkOiwgdGltZXN0YW1wOiAwLCBpc19wdW5jdHVhdGlvbjogZmFsc2V8 DQogIGxvZy5pbmZvICJQcm9jZXNzaW5nICN7dGltZXN0YW1wIC8gNjB9IG1pbnV0ZSINCiAgZnVs bF90ZXh0ID0gaXNfcHVuY3RpYXRpb24gPyB0ZXh0IDogdGV4dCArICcgJw0KICAiPHNwYW4gY2xh c3M9J3dvcmQgcGFyYWdyYXBoLSN7cGFyYWdyYXBoX2lkfScgZGF0YS10aW1lPSN7dGltZXN0YW1w fSBkYXRhLW9yaWdpbmFsLXRleHQ9I3t0ZXh0fT4je2Z1bGxfdGV4dH08L3NwYW4+Ig0KfQ0KDQoj IEFsdGVybmF0aXZlIHdpdGgganVzdCBoYXNoZXM6DQp3b3Jkcy5tYXAgeyB8d29yZHwNCiAgIyB0 aG9zZSB0d28gdXNlZCBzZXZlcmFsIHRpbWVzDQogIHRleHQgPSB3b3JkLmZldGNoKDp0ZXh0KQ0K ICB0aW1lc3RhbXAgPSB3b3JkLmZldGNoKDp0aW1lc3RhbXAsIDApDQogIGxvZy5pbmZvICJQcm9j ZXNzaW5nICN7dGltZXN0YW1wIC8gNjB9IG1pbnV0ZSINCiAgIyBBYnNlbnQgaXNfcHVuY3R1YXRp b24gaXMgb2ssIGl0IGRlZmF1bHQgdG8gZmFsc2UNCiAgZnVsbF90ZXh0ID0gd29yZFs6aXNfcHVu Y3RpYXRpb25dID8gdGV4dCA6IHRleHQgKyAnICcNCiAgIjxzcGFuIGNsYXNzPSd3b3JkIHBhcmFn cmFwaC0je3dvcmQuZmV0Y2goOnBhcmFncmFwaF9pZCl9JyBkYXRhLXRpbWU9I3t0aW1lc3RhbXB9 IGRhdGEtb3JpZ2luYWwtdGV4dD0je3RleHR9PiN7ZnVsbF90ZXh0fTwvc3Bhbj4iDQp9DQoNCiMg QWx0ZXJuYXRpdmUgd2l0aCBwYXR0ZXJuLW1hdGNoaW5nOiB0byB1bnBhY2sgdmFyaWFibGVzLCBh bmQgaGFuZGxlIGRlZmF1bHQgdmFsdWVzLCBpdCB3aWxsIGJlIHNvbWV0aGluZyBsaWtlLi4uDQpj YXNlIHdvcmQNCmluIHRleHQ6LCBwYXJhZ3JhcGhfaWQ6LCB0aW1lc3RhbXA6DQogICMgc2tpcCwg anVzdCB1bnBhY2tlZA0KaW4gdGV4dDosIHBhcmFncmFwaF9pZDogIyBubyB0aW1lc3RhbXA6DQog IHRpbWVzdGFtcCA9IDANCmVuZA0KIyBJIGFtIGV2ZW4gbm90IHRyeWluZyB0byBoYW5kbGUgVFdP IGRlZmF1bHQgdmFsdWVzDQpgYGANCg0KQXMgc2hvd24gYWJvdmUsIGBIYXNoI2ZldGNoYC9gSGFz aCNbXWAgc3R5bGUgbWFrZXMgaXQgbXVjaCBoYXJkZXIgdG8gdW5kZXJzdGFuZCB3aGF0IGJsb2Nr IGV4cGVjdHMgaGFzaCB0byBoYXZlLCBhbmQgaG93IGl0IHVzZXMgaGFzaCBjb21wb25lbnRzIOKA lCBhbmQganVzdCBtYWtlcyB0aGUgY29kZSBsb25nZXIgYW5kIGxlc3MgcGxlYXNhbnQgdG8gd3Jp dGUgYW5kIHJlYWQuIFBhdHRlcm4tbWF0Y2hpbmcgKGF0IGxlYXN0IGZvciBub3cpIGlzIGp1c3Qg bm90IHBvd2VyZnVsIGVub3VnaCBmb3IgdGhpcyBwYXJ0aWN1bGFyIGNhc2UgKGl0IGFsc28gaGFz IG5vbi1pbmZvcm1hdGl2ZSBlcnJvciBtZXNzYWdlcywgYnV0IGl0IG9idmlvdXNseSBjYW4gYmUg aW1wcm92ZWQpLg0KDQpNeSAqKnByb3Bvc2FsKiogaXMgdG8gKiphbGxvdyBpbXBsaWNpdCBoYXNo IHVucGFja2luZyoqIGludG8ga2V5d29yZCBhcmd1bWVudHMgaW4gKipub24tbGFtYmRhIHByb2Nz KiouIEl0IHdvdWxkIGJlICoqY29uc2lzdGVudCoqIHdpdGggaW1wbGljaXQgYXJyYXkgdW5wYWNr aW5nLCB3aGljaCBpcyBhbiBpbXBvcnRhbnQgcHJvcGVydHkgb2Ygbm9uLWxhbWJkYSBwcm9jcywg dXNlZnVsIGZvciByZWFzb25zICp2ZXJ5IHNpbWlsYXIgdG8gZGVzY3JpYmVkIGFib3ZlKi4NCg0K DQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQoKVW5zdWJzY3JpYmU6IDxtYWls dG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8 aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1j b3JlPgo=