[ruby-core:95503] [Ruby master Feature#16264] Real "callable instance method" object.
From:
zverok.offline@...
Date:
2019-10-23 15:53:40 UTC
List:
ruby-core #95503
SXNzdWUgIzE2MjY0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgenZlcm9rIChWaWN0b3IgU2hlcGVsZXYp Lg0KDQoNCj4gaXMgYC46aG9nZWAgYSBgOmhvZ2UudG9fcHJvY2Agc3ludGF4IHN1Z2FyPw0KDQpO bywgYW5kIHRoYXQncyBhIGNvcmUgb2YgdGhlIHByb3Bvc2FsLiBgOmhvZ2UudG9fcHJvY2AgcHJv ZHVjZXMgcmVndWxhciBgUHJvY2AgKHdoaWNoIGlzIGRpZmZlcmVudCBpbnRlcm5hbGx5LCBidXQg Y29uY2VhbHMgdGhpcyBmYWN0KS4gYC46aG9nZWAgaXMgbWVhbnQgdG8gcHJvZHVjZSBuZXcgY29y ZSBvYmplY3QuDQoNCj4gSW4gUnVieSwgYHNlbGYuaG9nZWAgYW5kIGBob2dlYCB3aXRob3V0IGBz ZWxmYCBvZnRlbiBoYXZlIHRoZSBzYW1lIG1lYW5pbmcNCj4gQnV0LCBpdCBsb29rcyB2ZXJ5IHN0 cmFuZ2UgdGhhdCBgbWFwKCZzZWxmLjpob2dlKWAgYW5kIGBtYXAoJi46aG9nZSlgIGhhdmUgZGlm ZmVyZW50IG1lYW5pbmdzLg0KDQpZZXMsIHRoYXQncyBhbiBvYnZpb3VzIGNvbXByb21pc2UgZm9y IHRoaXMgcHJvcG9zYWwuIFRoZSBpbnR1aXRpb24gb2YgInlvdSBjb3VsZCBkcm9wIGBzZWxmLmAi IGlzIGFscmVhZHkgYnJva2VuIGZvciBgc2VsZi46aG9nZWAsIHdoaWNoIGlzIHByb2hpYml0ZWQg Y3VycmVudGx5OyBJIGJlbGlldmUgaXQgd291bGQgYmUgYSAiZ290Y2hhIiwgeWV0IGJlYXJhYmxl IG9uZS4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVy ZSAjMTYyNjQ6IFJlYWwgImNhbGxhYmxlIGluc3RhbmNlIG1ldGhvZCIgb2JqZWN0Lg0KaHR0cHM6 Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE2MjY0I2NoYW5nZS04MjI3OQ0KDQoqIEF1dGhv cjogenZlcm9rIChWaWN0b3IgU2hlcGVsZXYpDQoqIFN0YXR1czogRmVlZGJhY2sNCiogUHJpb3Jp dHk6IE5vcm1hbA0KKiBBc3NpZ25lZTogDQoqIFRhcmdldCB2ZXJzaW9uOiANCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkl0IGlzIGEgcGFydCBvZiB0aGlua2luZyBh Ym91dCB0aGUgImFyZ3VtZW50LWxlc3MgY2FsbCBzdHlsZSIgSSBhbHJlYWR5IG1hZGUgc2V2ZXJh bCBwcm9wb3NhbHMgYWJvdXQuDQoNCiMjIyBQcmVmYWNlDQoNCioqKkFyZ3VtZW50LWxlc3MgY2Fs bCBzdHlsZSoqKiBpcyB3aGF0IEkgbm93IGNhbGwgdGhpbmdzIGxpa2UgYG1hcCgmOmZvbylgIGFu ZCBgZWFjaCgmTm90aWZpY2F0aW9ucy46c2VuZClgIGFwcHJvYWNoZXMsIGFuZCBJIGJlbGlldmUg IHRoYXQgbmFtaW5nIHRoZSBjb25jZXB0IChldmVuIGlmIG15IGluaXRpYWwgbmFtZSBpcyBjbGFt c3kpIHdpbGwgaGVscCB0byB0aGluayBhYm91dCBpdC4gQWZ0ZXIgdXNpbmcgaXQgYSBsb3Qgb24g YSBsYXJnZSBwcm9kdWN0aW9uIGNvZGViYXNlIChub3Qgb25seSBzeW1ib2xzLCBidXQgbWV0aG9k IHJlZmVyZW5jZXMgdG9vLCB3aGljaCBzZWVtIHRvIGJlIGxlc3Mgd2lkZXNwcmVhZCB0ZWNobmlx dWUpLCBJIGhhdmUgYSBzdHJvbmcgb3BpbmlvbiB0aGF0IGl0IG5vdCBqdXN0ICJoZWxwcyB0byBz YXZlIHRoZSBrZXlwcmVzc2VzIiAod2hpY2ggaXMgbGVzcyBpbXBvcnRhbnQpLCBidXQgYWxzbyBo ZWxwcyB0byBjbGVhcmVyIHNlcGFyYXRlIHRoZSBjb25jZXB0cyBvbiBhIG1pY3JvLWxldmVsIG9m IHRoZSBjb2RlLiBFLmcuIGlmIHlvdSBmZWVsIHRoYXQgYGVhY2goJk5vdGlmaWNhdGlvbnMuOnNl bmQpYCBpcyAibW9yZSByaWdodCIgdGhhbiBgc2VsZWN0IHsgfGVsfCBOb3RpZmljYXRpb25zLnNl bmQoZWwsIHNvbWV0aGluZywgc29tZXRoaW5nKSB9YCwgaXQgbWFrZXMgeW91IHRoaW5rIGFib3V0 IGBOb3RpZmljYXRpb25zLnNlbmRgIGRlc2lnbiBpbiBhIHdheSB0aGF0IGFsbG93cyB0byBwYXNz IHRoZXJlIF9leGFjdGx5XyB0aGF0IGNvbWJpbmF0aW9uIG9mIGFyZ3VtZW50cyBzbyBpdCB3b3Vs ZCBiZSBlYXNpbHkgY2FsbGFibGUgdGhhdCB3YXksIGNsYXJpZnlpbmcgbW9kdWxlcyByZXNwb25z aWJpbGl0aWVzLg0KDQo+IChBbmQgSSBiZWxpZXZlIHRoYXQgIm5hbWVsZXNzIGJsb2NrIHBhcmFt ZXRlcnMiLCB3aGlsZSBoZWxwaW5nIHRvIHNob3J0ZXIgdGhlIGNvZGUsIGxhY2sgdGhpcyBpbXBv cnRhbnQgY2hhcmFjdGVyaXN0aWMgb2YgY2xhcmlmaWNhdGlvbi4pDQoNCiMjIyBUaGUgcHJvYmxl bQ0KDQpPbmUgb2YgdGhlIHByb2JsZW1zIG9mICJhcmd1bWVudC1sZXNzIGNhbGxpbmciIGlzIHBh c3NpbmcgYWRkaXRpb25hbCBhcmd1bWVudHMsIHRoaW5ncyBsaWtlIHRob3NlIGFyZW4ndCBlYXN5 IHRvIHNob3J0ZW46DQpgYGBydWJ5DQphcnkxLnppcChhcnkyLCBhcnkzKS5tYXAgeyB8bGluZXN8 IGxpbmVzLmpvaW4oIlxuIikgfQ0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5eXl4NCmNvbnN0cnVjdF91cmwudGhlbigmSFRUUC46Z2V0KS5ib2R5LnRoZW4g eyB8dGV4dHwgSlNPTi5wYXJzZSh0ZXh0LCBzeW1ib2xpemVfbmFtZXM6IHRydWUpIH0NCiMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eDQpgYGANCg0KKEJUVywgaGVyZSBpcyBbYSBibG9n IHBvc3RdKGh0dHBzOi8venZlcm9rLmdpdGh1Yi5pby9ibG9nLzIwMTktMTAtMTgtZWFjaF93aXRo X29iamVjdC5odG1sKSB3aGVyZSBJIHNob3cgcmVjZW50bHkgZm91bmQgdGVjaG5pcXVlIGZvciBz b2x2aW5nIHRoaXMsIHByZXR0eSBuaWNlIGFuZCBhbHdheXMgZXhpc3RpbmcgaW4gUnVieSwgaWYg c2xpZ2h0bHkgZXNvdGhlcmljLikNCg0KVGhlcmUncyBhIGxvdCBvZiBwcm9wb3NhbHMgZm9yICJw YXJ0aWFsIGFwcGxpY2F0aW9ucyIgd2hpY2ggd291bGQgYmUgbW9yZSBleHByZXNzaXZlIHRoYW4g YC5jdXJyeWAgKFtndWlsdHldKGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNjEx MykgW215c2VsZl0oaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE1MzAxKSksIGJ1 dCB0aGUgcHJvYmxlbWF0aWMgcGFydCBpbiBhbGwgb2YgdGhpcyBwcm9wb3NhbHMgaXM6DQoNCj4g KipUaGUgbW9zdCB3aWRlc3ByZWFkICJzaG9ydGVuaW5nIiBpcyBgJjpzeW1ib2xgLCBhbmQgYFN5 bWJvbGAgaXRzZWxmIGlzIE5PVCBhIGZ1bmN0aW9uYWwgb2JqZWN0LCBhbmQgaXQgaXMgd3Jvbmcg dG8gZXh0ZW5kIGl0IHdpdGggZnVuY3Rpb25hbCBhYmlsaXRpZXMuKioNCg0KT25lIG9mIGNvbnNl cXVlbmNlcyBvZiB0aGUgYWJvdmUgaXMsIGZvciBleGFtcGxlLCB0aGF0IHlvdSBjYW4ndCB1c2Ug Mi42J3MgcHJvYyBjb21iaW5hdGlvbiB3aXRoIHN5bWJvbHMsIGxpa2UgYEZpbGUuOnJlYWQgPj4g OnN0cmlwID4+IDpyZXZlcnNlYC4gWW91IHdhbnQsIGJ1dCB5b3UgY2FuJ3QuDQoNCkhlcmUgKHdo aWxlIGRpc2N1c3NpbmcgYWZvcmVtZW50aW9uZWQgYmxvZyBwb3N0cyksIEkgc3R1bWJsZWQgdXBv biBhbiBpZGVhIG9mIGhvdyB0byBzb2x2ZSB0aGlzIGRpbGVtbWEuDQoNCiMjIyBUaGUgcHJvcG9z YWwNCg0KSSBwcm9wb3NlIHRvIGhhdmUgYSBzeW50YXggZm9yIGNyZWF0aW5nIGEgZnVuY3Rpb25h bCBvYmplY3QgdGhhdCB3aGVuIGJlaW5nIGNhbGxlZCwgc2VuZHMgdGhlIHNwZWNpZmllZCBtZXRo b2QgdG8gaXRzIGZpcnN0IGFyZ3VtZW50LiBCYXNpY2FsbHksIHdoYXQgYFN5bWJvbCN0b19wcm9j YCBkb2VzLCBidXQgd2l0aG91dCAiaGFjayIgb2YgIndlIGFsbG93IG91ciBzeW1ib2xzIHRvIGJl IGNvbnZlcnRpYmxlIHRvIGZ1bmN0aW9uYWwgb2JqZWN0cyIuIFByb3Bvc2VkIHN5bnRheDoNCg0K YGBgcnVieQ0KWzEsIDIsIDNdLm1hcCgmLjp0b19zKQ0KYGBgDQoNCkp1c3RpZmljYXRpb24gb2Yg dGhlIHN5bnRheDoNCg0KKiBJdCBpcyBsaWtlIGBGb28uOm1ldGhvZGAgKHByb2R1Y2luZyBmdW5j dGlvbmFsIG9iamVjdCB0aGF0IGNhbGxzIGBtZXRob2RgKQ0KKiBPcnBoYW4gYC46bWV0aG9kYCBp c24ndCBhbGxvd2VkIGN1cnJlbnRseSAoeW91IG5lZWQgdG8gc2F5IGBzZWxmLjptZXRob2RgIHRv IHJlZmVyIHRvICJjdXJyZW50IGBzZWxmYHMgbWV0aG9kIiksIGFuZCBNYXR6J3MganVzdGlmaWNh dGlvbiB3YXMgIml0IHdvdWxkIGJlIHRvbyBjb25mdXNhYmxlIHdpdGggYDptZXRob2RgLCBzbWFs bCB0eXBvIHdpbGwgY2hhbmdlIHRoZSByZXN1bHQiIC0tIHdoaWNoIGluIFBST1BPU0VEIGNhc2Ug aXMgbm90IGFzIGJhZCwgYXMgYDpmb29gIGFuZCBgLjpmb29gIGJvdGggbWVhbmluZyB0aGUgc2Ft ZSB0aGluZzsNCiogSXQgbG9va3Mga2luZGEgbmljZSwgc2ltaWxhciB0byAoW3Byb3Bvc2VkIGFu ZCByZWplY3RlZF0oaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE2MTIwKSkgYG1h cCB7IC50b19zIH1gIOKGkiB3aXRoIG15IHByb3Bvc2FsLCBpdCBpcyBgbWFwKCYuOnRvX3MpYCwg aW1wbHlpbmcgc29tZWhvdyBhcHBseWluZyBgLnRvX3NgIHRvIHRoZSBwcmV2aW91cyB2YWx1ZXMg aW4gdGhlIGNoYWluLg0KDQoqKlRoZSBiZWhhdmlvcjoqKiBgLjpmb29gIHByb2R1Y2VzIG9iamVj dCBvZiBjbGFzcywgc2F5LCBgTWV0aG9kT2ZBcmd1bWVudGAgKGNsYXNzIG5hbWUgaXMgc3ViamVj dCB0byBkaXNjdXNzKSDigJQgd2hpY2ggbWFrZXMgZGlmZmVyZW5jZXMgb2YgIlByb2MgY3JlYXRl ZCBmcm9tIFN5bWJvbCIgKGV4aXN0aW5nIGludGVybmFsbHksIGJ1dCBhbG1vc3QgaW52aXNpYmxl KSBvYnZpb3VzIGFuZCBoYWNrYWJsZS4NCg0KIyMjIFBvdGVudGlhbCBnYWlucw0KDQoqIE5ldyBv YmplY3QgY291bGQgYmUgdXNlZCBpbiBwcm9jIGNvbXBvc2l0aW9uOiBgRmlsZS46cmVhZCA+PiAu OnN0cmlwID4+IEpTT04uOnBhcnNlID4+IC46Y29tcGFjdGANCiogV2hlbiBib3RoICJtZXRob2Qi IGFuZCAibWV0aG9kIG9mIGFyZ3VtZW50IiBhcmUgcHJvcGVyIGZ1bmN0aW9uYWwgb2JqZWN0cywg YSBuZXcgcGFydGlhbCBhcHBsaWNhdGlvbiBzeW50YXggY2FuIGJlIGRpc2N1c3NlZCwgY29tbW9u IGZvciB0aGVtIGJvdGguIEZvciBleGFtcGxlIChidXQgKipub3QgbmVjZXNzYXJ5IHRoaXMgbWV0 aG9kIG5hbWUhKiopDQoNCiAgYGBgcnVieQ0KcGFyYWdyYXBoX2hhc2hlcy5tYXAoJi46bWVyZ2Uu d2l0aChhdXRob3I6IGN1cnJlbnRfYXV0aG9yKSkNCmZpbGVuYW1lcy5tYXAoJkZpbGUuOnJlYWQu d2l0aChtb2RlOiAncmInKSkNCiAgYGBgDQoqIChJIGJlbGlldmUgYXQgdGhpcyBwb2ludCB3ZSds bCBiZSBhYmxlIHRvIGZpbmFsbHkgc3dpdGNoIGZyb20gZGlzY3Vzc2luZyAic2hvdyB3ZSBleHRl bmQgU3ltYm9sIHdpdGggbW9yZSBjYWxsYWJsZS1hbGlrZSBmdW5jdGlvbmFsaXR5IiB0byBqdXN0 IG1ldGhvZCdzIG5hbWUgYW5kIGV4YWN0IGJlaGF2aW9yKQ0KKiBJIGFtIG5vdCBhbiBleHBlcnQs IGJ1dCBwcm9iYWJseSBzb21lIG9wdGltaXphdGlvbnMgY291bGQgYmUgYXBwbGllZCwgdG9vDQoq IEN1cnJlbnRseSwgYDpzeW0udG9fcHJvY2AgaXMgaW50ZXJuYWxseSBkaWZmZXJlbnQgZnJvbSBv dGhlciBwcm9jLCBidXQgdGhpcyBjYW4ndCBiZSBpbnRyb3NwZWN0ZWQ6DQoNCiAgYGBgcnVieQ0K OnJlYWQudG9fcHJvYy5pbnNwZWN0ICMgPT4gIiM8UHJvYzoweDAwMDA1NTYyMTYxOTIxOTgoJjpy ZWFkKT4iDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgXl5eXl4NCiAgYGBgDQoqICBQcm9iYWJseSwgZXhwb3N1cmUgb2YgdGhpcyBmYWN0IGNv dWxkIGxlYWQgdG8gc29tZSBuZXcgaW50ZXJlc3RpbmcgbWV0YXByb2dyYW1taW4vb3B0aW1pemF0 aW9uIHRlY2huaXF1ZXMuDQoNCiMjIyBUcmFuc2l0aW9uDQoNCmA6Zm9vYCBhbmQgYC46Zm9vYCBj b3VsZCB3b3JrIHNpbWlsYXJseSBmb3Igc29tZSB1cGNvbWluZyB2ZXJzaW9ucyAob3IgaW5kZWZp bml0ZWx5KSwgd2l0aCBgLjpmb29gIGJlaW5nIG1vcmUgcG93ZXJmdWwgYWx0ZXJuYXRpdmUsIGFs bG93aW5nIGZlYXR1cmVzIGxpa2UgYGdyb3Vwc19vZl9saW5lcy5tYXAoJi46am9pbi5wYXJ0aWFs X2FwcGx5KCcgJykpYCBvciBzb21ldGhpbmcuDQoNCkl0IHdvdWxkIGJlIGxpa2UgInJlYWwiIGFu ZCAiaW1pdGF0ZWQiIGtleXdvcmQgYXJndW1lbnRzLiAiTGFzdCBoYXNoIHdpdGhvdXQgYnJhY2Vz IiB3YXMgZ29vZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsYW5ndWFnZSBsaWZlY3ljbGUsIGJ1 dCB0aGVuIGl0IHR1cm5lZCBvdXQgdGhhdCByZWFsIG9uZXMgcHJvdmlkZSBhIGxvdCBvZiBiZW5l Zml0cy4gU2FtZSB0aGluZyBoZXJlOiBgJjpzeW1ib2xgIGlzIHN1cGVyLW5pY2UsIGJ1dCwgaG9u ZXN0bHksIGl0IGlzIHNlbWFudGljYWxseSBxdWVzdGlvbmFibGUsIHNvIG1heSBiZSBzbG93IHN3 aXRjaCB0byBhICJyZWFsIHRoaW5nIiB3b3VsZCBiZSBnYWluZnVsIGZvciBldmVyeWJvZHk/Li4N Cg0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQoKVW5zdWJzY3JpYmU6IDxt YWlsdG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJl Pgo8aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVi eS1jb3JlPgo=