[ruby-core:95495] [Ruby master Feature#16264] Real "callable instance method" object.
From:
zverok.offline@...
Date:
2019-10-23 08:09:06 UTC
List:
ruby-core #95495
SXNzdWUgIzE2MjY0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgenZlcm9rIChWaWN0b3IgU2hlcGVsZXYp Lg0KDQpEZXNjcmlwdGlvbiB1cGRhdGVkDQoNClVwZGF0ZWQgZGVzY3JpcHRpb24gc2lnbmlmaWNh bnRseSB0byBjbGFyaWZ5IGludGVudGlvbnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzE2MjY0OiBSZWFsICJjYWxsYWJsZSBpbnN0YW5jZSBt ZXRob2QiIG9iamVjdC4NCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNjI2NCNj aGFuZ2UtODIyNjgNCg0KKiBBdXRob3I6IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2KQ0KKiBTdGF0 dXM6IEZlZWRiYWNrDQoqIFByaW9yaXR5OiBOb3JtYWwNCiogQXNzaWduZWU6IA0KKiBUYXJnZXQg dmVyc2lvbjogDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpJdCBp cyBhIHBhcnQgb2YgdGhpbmtpbmcgYWJvdXQgdGhlICJhcmd1bWVudC1sZXNzIGNhbGwgc3R5bGUi IEkgYWxyZWFkeSBtYWRlIHNldmVyYWwgcHJvcG9zYWxzIGFib3V0Lg0KDQojIyMgUHJlZmFjZQ0K DQoqKipBcmd1bWVudC1sZXNzIGNhbGwgc3R5bGUqKiogaXMgd2hhdCBJIG5vdyBjYWxsIHRoaW5n cyBsaWtlIGBtYXAoJjpmb28pYCBhbmQgYGVhY2goJk5vdGlmaWNhdGlvbnMuOnNlbmQpYCBhcHBy b2FjaGVzLCBhbmQgSSBiZWxpZXZlICB0aGF0IG5hbWluZyB0aGUgY29uY2VwdCAoZXZlbiBpZiBt eSBpbml0aWFsIG5hbWUgaXMgY2xhbXN5KSB3aWxsIGhlbHAgdG8gdGhpbmsgYWJvdXQgaXQuIEFm dGVyIHVzaW5nIGl0IGEgbG90IG9uIGEgbGFyZ2UgcHJvZHVjdGlvbiBjb2RlYmFzZSAobm90IG9u bHkgc3ltYm9scywgYnV0IG1ldGhvZCByZWZlcmVuY2VzIHRvbywgd2hpY2ggc2VlbSB0byBiZSBs ZXNzIHdpZGVzcHJlYWQgdGVjaG5pcXVlKSwgSSBoYXZlIGEgc3Ryb25nIG9waW5pb24gdGhhdCBp dCBub3QganVzdCAiaGVscHMgdG8gc2F2ZSB0aGUga2V5cHJlc3NlcyIgKHdoaWNoIGlzIGxlc3Mg aW1wb3J0YW50KSwgYnV0IGFsc28gaGVscHMgdG8gY2xlYXJlciBzZXBhcmF0ZSB0aGUgY29uY2Vw dHMgb24gYSBtaWNyby1sZXZlbCBvZiB0aGUgY29kZS4gRS5nLiBpZiB5b3UgZmVlbCB0aGF0IGBl YWNoKCZOb3RpZmljYXRpb25zLjpzZW5kKWAgaXMgIm1vcmUgcmlnaHQiIHRoYW4gYHNlbGVjdCB7 IHxlbHwgTm90aWZpY2F0aW9ucy5zZW5kKGVsLCBzb21ldGhpbmcsIHNvbWV0aGluZykgfWAsIGl0 IG1ha2VzIHlvdSB0aGluayBhYm91dCBgTm90aWZpY2F0aW9ucy5zZW5kYCBkZXNpZ24gaW4gYSB3 YXkgdGhhdCBhbGxvd3MgdG8gcGFzcyB0aGVyZSBfZXhhY3RseV8gdGhhdCBjb21iaW5hdGlvbiBv ZiBhcmd1bWVudHMgc28gaXQgd291bGQgYmUgZWFzaWx5IGNhbGxhYmxlIHRoYXQgd2F5LCBjbGFy aWZ5aW5nIG1vZHVsZXMgcmVzcG9uc2liaWxpdGllcy4NCg0KPiAoQW5kIEkgYmVsaWV2ZSB0aGF0 ICJuYW1lbGVzcyBibG9jayBwYXJhbWV0ZXJzIiwgd2hpbGUgaGVscGluZyB0byBzaG9ydGVyIHRo ZSBjb2RlLCBsYWNrIHRoaXMgaW1wb3J0YW50IGNoYXJhY3RlcmlzdGljIG9mIGNsYXJpZmljYXRp b24uKQ0KDQojIyMgVGhlIHByb2JsZW0NCg0KT25lIG9mIHRoZSBwcm9ibGVtcyBvZiAiYXJndW1l bnQtbGVzcyBjYWxsaW5nIiBpcyBwYXNzaW5nIGFkZGl0aW9uYWwgYXJndW1lbnRzLCB0aGluZ3Mg bGlrZSB0aG9zZSBhcmVuJ3QgZWFzeSB0byBzaG9ydGVuOg0KYGBgcnVieQ0KYXJ5MS56aXAoYXJ5 MiwgYXJ5MykubWFwIHsgfGxpbmVzfCBsaW5lcy5qb2luKCJcbiIpIH0NCiMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eDQpjb25zdHJ1Y3RfdXJsLnRoZW4o JkhUVFAuOmdldCkuYm9keS50aGVuIHsgfHRleHR8IEpTT04ucGFyc2UodGV4dCwgc3ltYm9saXpl X25hbWVzOiB0cnVlKSB9DQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXg0KYGBgDQoN CihCVFcsIGhlcmUgaXMgW2EgYmxvZyBwb3N0XShodHRwczovL3p2ZXJvay5naXRodWIuaW8vYmxv Zy8yMDE5LTEwLTE4LWVhY2hfd2l0aF9vYmplY3QuaHRtbCkgd2hlcmUgSSBzaG93IHJlY2VudGx5 IGZvdW5kIHRlY2huaXF1ZSBmb3Igc29sdmluZyB0aGlzLCBwcmV0dHkgbmljZSBhbmQgYWx3YXlz IGV4aXN0aW5nIGluIFJ1YnksIGlmIHNsaWdodGx5IGVzb3RoZXJpYy4pDQoNClRoZXJlJ3MgYSBs b3Qgb2YgcHJvcG9zYWxzIGZvciAicGFydGlhbCBhcHBsaWNhdGlvbnMiIHdoaWNoIHdvdWxkIGJl IG1vcmUgZXhwcmVzc2l2ZSB0aGFuIGAuY3VycnlgIChbZ3VpbHR5XShodHRwczovL2J1Z3MucnVi eS1sYW5nLm9yZy9pc3N1ZXMvMTYxMTMpIFtteXNlbGZdKGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu b3JnL2lzc3Vlcy8xNTMwMSkpLCBidXQgdGhlIHByb2JsZW1hdGljIHBhcnQgaW4gYWxsIG9mIHRo aXMgcHJvcG9zYWxzIGlzOg0KDQo+ICoqVGhlIG1vc3Qgd2lkZXNwcmVhZCAic2hvcnRlbmluZyIg aXMgYCY6c3ltYm9sYCwgYW5kIGBTeW1ib2xgIGl0c2VsZiBpcyBOT1QgYSBmdW5jdGlvbmFsIG9i amVjdCwgYW5kIGl0IGlzIHdyb25nIHRvIGV4dGVuZCBpdCB3aXRoIGZ1bmN0aW9uYWwgYWJpbGl0 aWVzLioqDQoNCk9uZSBvZiBjb25zZXF1ZW5jZXMgb2YgdGhlIGFib3ZlIGlzLCBmb3IgZXhhbXBs ZSwgdGhhdCB5b3UgY2FuJ3QgdXNlIDIuNidzIHByb2MgY29tYmluYXRpb24gd2l0aCBzeW1ib2xz LCBsaWtlIGBGaWxlLjpyZWFkID4+IDpzdHJpcCA+PiA6cmV2ZXJzZWAuIFlvdSB3YW50LCBidXQg eW91IGNhbid0Lg0KDQpIZXJlICh3aGlsZSBkaXNjdXNzaW5nIGFmb3JlbWVudGlvbmVkIGJsb2cg cG9zdHMpLCBJIHN0dW1ibGVkIHVwb24gYW4gaWRlYSBvZiBob3cgdG8gc29sdmUgdGhpcyBkaWxl bW1hLg0KDQojIyMgVGhlIHByb3Bvc2FsDQoNCkkgcHJvcG9zZSB0byBoYXZlIGEgc3ludGF4IGZv ciBjcmVhdGluZyBhIGZ1bmN0aW9uYWwgb2JqZWN0IHRoYXQgd2hlbiBiZWluZyBjYWxsZWQsIHNl bmRzIHRoZSBzcGVjaWZpZWQgbWV0aG9kIHRvIGl0cyBmaXJzdCBhcmd1bWVudC4gQmFzaWNhbGx5 LCB3aGF0IGBTeW1ib2wjdG9fcHJvY2AgZG9lcywgYnV0IHdpdGhvdXQgImhhY2siIG9mICJ3ZSBh bGxvdyBvdXIgc3ltYm9scyB0byBiZSBjb252ZXJ0aWJsZSB0byBmdW5jdGlvbmFsIG9iamVjdHMi LiBQcm9wb3NlZCBzeW50YXg6DQoNCmBgYHJ1YnkNClsxLCAyLCAzXS5tYXAoJi46dG9fcykNCmBg YA0KDQpKdXN0aWZpY2F0aW9uIG9mIHRoZSBzeW50YXg6DQoNCiogSXQgaXMgbGlrZSBgRm9vLjpt ZXRob2RgIChwcm9kdWNpbmcgZnVuY3Rpb25hbCBvYmplY3QgdGhhdCBjYWxscyBgbWV0aG9kYCkN CiogT3JwaGFuIGAuOm1ldGhvZGAgaXNuJ3QgYWxsb3dlZCBjdXJyZW50bHkgKHlvdSBuZWVkIHRv IHNheSBgc2VsZi46bWV0aG9kYCB0byByZWZlciB0byAiY3VycmVudCBgc2VsZmBzIG1ldGhvZCIp LCBhbmQgTWF0eidzIGp1c3RpZmljYXRpb24gd2FzICJpdCB3b3VsZCBiZSB0b28gY29uZnVzYWJs ZSB3aXRoIGA6bWV0aG9kYCwgc21hbGwgdHlwbyB3aWxsIGNoYW5nZSB0aGUgcmVzdWx0IiAtLSB3 aGljaCBpbiBQUk9QT1NFRCBjYXNlIGlzIG5vdCBhcyBiYWQsIGFzIGA6Zm9vYCBhbmQgYC46Zm9v YCBib3RoIG1lYW5pbmcgdGhlIHNhbWUgdGhpbmc7DQoqIEl0IGxvb2tzIGtpbmRhIG5pY2UsIHNp bWlsYXIgdG8gKFtwcm9wb3NlZCBhbmQgcmVqZWN0ZWRdKGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu b3JnL2lzc3Vlcy8xNjEyMCkpIGBtYXAgeyAudG9fcyB9YCDihpIgd2l0aCBteSBwcm9wb3NhbCwg aXQgaXMgYG1hcCgmLjp0b19zKWAsIGltcGx5aW5nIHNvbWVob3cgYXBwbHlpbmcgYC50b19zYCB0 byB0aGUgcHJldmlvdXMgdmFsdWVzIGluIHRoZSBjaGFpbi4NCg0KKipUaGUgYmVoYXZpb3I6Kiog YC46Zm9vYCBwcm9kdWNlcyBvYmplY3Qgb2YgY2xhc3MsIHNheSwgYE1ldGhvZE9mQXJndW1lbnRg IChjbGFzcyBuYW1lIGlzIHN1YmplY3QgdG8gZGlzY3Vzcykg4oCUIHdoaWNoIG1ha2VzIGRpZmZl cmVuY2VzIG9mICJQcm9jIGNyZWF0ZWQgZnJvbSBTeW1ib2wiIChleGlzdGluZyBpbnRlcm5hbGx5 LCBidXQgYWxtb3N0IGludmlzaWJsZSkgb2J2aW91cyBhbmQgaGFja2FibGUuDQoNCiMjIyBQb3Rl bnRpYWwgZ2FpbnMNCg0KKiBOZXcgb2JqZWN0IGNvdWxkIGJlIHVzZWQgaW4gcHJvYyBjb21wb3Np dGlvbjogYEZpbGUuOnJlYWQgPj4gLjpzdHJpcCA+PiBKU09OLjpwYXJzZSA+PiAuOmNvbXBhY3Rg DQoqIFdoZW4gYm90aCAibWV0aG9kIiBhbmQgIm1ldGhvZCBvZiBhcmd1bWVudCIgYXJlIHByb3Bl ciBmdW5jdGlvbmFsIG9iamVjdHMsIGEgbmV3IHBhcnRpYWwgYXBwbGljYXRpb24gc3ludGF4IGNh biBiZSBkaXNjdXNzZWQsIGNvbW1vbiBmb3IgdGhlbSBib3RoLiBGb3IgZXhhbXBsZSAoYnV0ICoq bm90IG5lY2Vzc2FyeSB0aGlzIG1ldGhvZCBuYW1lISoqKQ0KDQogIGBgYHJ1YnkNCnBhcmFncmFw aF9oYXNoZXMubWFwKCYuOm1lcmdlLndpdGgoYXV0aG9yOiBjdXJyZW50X2F1dGhvcikpDQpmaWxl bmFtZXMubWFwKCZGaWxlLjpyZWFkLndpdGgobW9kZTogJ3JiJykpDQogIGBgYA0KKiAoSSBiZWxp ZXZlIGF0IHRoaXMgcG9pbnQgd2UnbGwgYmUgYWJsZSB0byBmaW5hbGx5IHN3aXRjaCBmcm9tIGRp c2N1c3NpbmcgInNob3cgd2UgZXh0ZW5kIFN5bWJvbCB3aXRoIG1vcmUgY2FsbGFibGUtYWxpa2Ug ZnVuY3Rpb25hbGl0eSIgdG8ganVzdCBtZXRob2QncyBuYW1lIGFuZCBleGFjdCBiZWhhdmlvcikN CiogSSBhbSBub3QgYW4gZXhwZXJ0LCBidXQgcHJvYmFibHkgc29tZSBvcHRpbWl6YXRpb25zIGNv dWxkIGJlIGFwcGxpZWQsIHRvbw0KKiBDdXJyZW50bHksIGA6c3ltLnRvX3Byb2NgIGlzIGludGVy bmFsbHkgZGlmZmVyZW50IGZyb20gb3RoZXIgcHJvYywgYnV0IHRoaXMgY2FuJ3QgYmUgaW50cm9z cGVjdGVkOg0KDQogIGBgYHJ1YnkNCjpyZWFkLnRvX3Byb2MuaW5zcGVjdCAjID0+ICIjPFByb2M6 MHgwMDAwNTU2MjE2MTkyMTk4KCY6cmVhZCk+Ig0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIF5eXl5eDQogIGBgYA0KKiAgUHJvYmFibHksIGV4 cG9zdXJlIG9mIHRoaXMgZmFjdCBjb3VsZCBsZWFkIHRvIHNvbWUgbmV3IGludGVyZXN0aW5nIG1l dGFwcm9ncmFtbWluL29wdGltaXphdGlvbiB0ZWNobmlxdWVzLg0KDQojIyMgVHJhbnNpdGlvbg0K DQpgOmZvb2AgYW5kIGAuOmZvb2AgY291bGQgd29yayBzaW1pbGFybHkgZm9yIHNvbWUgdXBjb21p bmcgdmVyc2lvbnMgKG9yIGluZGVmaW5pdGVseSksIHdpdGggYC46Zm9vYCBiZWluZyBtb3JlIHBv d2VyZnVsIGFsdGVybmF0aXZlLCBhbGxvd2luZyBmZWF0dXJlcyBsaWtlIGBncm91cHNfb2ZfbGlu ZXMubWFwKCYuOmpvaW4ucGFydGlhbF9hcHBseSgnICcpKWAgb3Igc29tZXRoaW5nLg0KDQpJdCB3 b3VsZCBiZSBsaWtlICJyZWFsIiBhbmQgImltaXRhdGVkIiBrZXl3b3JkIGFyZ3VtZW50cy4gIkxh c3QgaGFzaCB3aXRob3V0IGJyYWNlcyIgd2FzIGdvb2QgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUg bGFuZ3VhZ2UgbGlmZWN5Y2xlLCBidXQgdGhlbiBpdCB0dXJuZWQgb3V0IHRoYXQgcmVhbCBvbmVz IHByb3ZpZGUgYSBsb3Qgb2YgYmVuZWZpdHMuIFNhbWUgdGhpbmcgaGVyZTogYCY6c3ltYm9sYCBp cyBzdXBlci1uaWNlLCBidXQsIGhvbmVzdGx5LCBpdCBpcyBzZW1hbnRpY2FsbHkgcXVlc3Rpb25h YmxlLCBzbyBtYXkgYmUgc2xvdyBzd2l0Y2ggdG8gYSAicmVhbCB0aGluZyIgd291bGQgYmUgZ2Fp bmZ1bCBmb3IgZXZlcnlib2R5Py4uDQoNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu b3JnLw0KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1YnktbGFuZy5v cmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcub3JnL2NnaS1i aW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K