[ruby-core:105870] [Ruby master Feature#18276] `Proc#bind_call(obj)` same as `obj.instance_exec(..., &proc_obj)`
From:
"Eregon (Benoit Daloze)" <noreply@...>
Date:
2021-10-29 20:24:13 UTC
List:
ruby-core #105870
SXNzdWUgIzE4Mjc2IGhhcyBiZWVuIHVwZGF0ZWQgYnkgRXJlZ29uIChCZW5vaXQgRGFsb3plKS4K CgpqaGF3dGhvcm4gKEpvaG4gSGF3dGhvcm4pIHdyb3RlIGluICNub3RlLTI6Cj4gSW4gUmFpbHMg d2UgdXNlIGBvYmouaW5zdGFuY2VfZXhlYygmcHJvY19vYmopYCBpbiBhIGZldyBwbGFjZXMuIE9u ZSBvZiB0aGUgZG93bnNpZGVzIGBpbnN0YW5jZV9leGVjYCBoYXMgaXMgdGhhdCBpdCBjcmVhdGVz IGEgc2luZ2xldG9uIGNsYXNzIGZvciBgb2JqYCwgd2hpY2ggaXNuJ3QgZnJpZW5kbHkgdG8gbWV0 aG9kIGNhY2hlcyBvciBKSVRzLiBgUHJvYyNiaW5kX2NhbGxgIHdvdWxkIGJlIHZlcnkgdXNlZnVs IHRvIHVzIGlmIGl0IGJlaGF2ZWQgc2ltaWxhcmx5IGJ1dCBkaWQgbm90IGNyZWF0ZSBhIHNpbmds ZXRvbiBjbGFzcy4KCkkgdGhpbmsgYGluc3RhbmNlX2V4ZWNgIGRvZXNuJ3QgY3JlYXRlIGEgc2lu Z2xldG9uIGNsYXNzLCBvbmx5IGlmIG5lZWRlZCBieSBlLmcuIGBPYmplY3QubmV3Lmluc3RhbmNl X2V4ZWMgeyBkZWYgZm9vOyBlbmQgfWAgKGF0IGxlYXN0IG9uIFRydWZmbGVSdWJ5LCBtYXliZSBp dCBkZXBlbmRzIGhvdyBlYWdlcmx5IHRoZSBjcmVmIGlzIGNvbXB1dGVkIGJ5IHRoZSBSdWJ5IGlt cGxlbWVudGF0aW9uKS4KSSB0aGluayB0aGUgc2FtZSBhcHBsaWVzIHRvIGBQcm9jI2JpbmRfY2Fs bGAgKGAtPiB7IGRlZiBmb287IGVuZCB9LmJpbmRfY2FsbChPYmplY3QubmV3KWApLgoKSSdtIG5v dCBhZ2FpbnN0IHN1Y2ggYSBtZXRob2QsIGJ1dCBJTUhPIHRoaXMgYWxvbmUgaXMgbm90IHNvbHZp bmcgIzE4MjQzIGluIGEgcmVhc29uYWJsZSB3YXkuCklmIGFuIG9iamVjdCBpcyBtYWRlIHNoYXJl YWJsZSwgZXZlcnkgb2JqZWN0IHJlYWNoYWJsZSBmcm9tIGl0IHNob3VsZCBiZSBmcm96ZW4gb3Ig c2hhcmVhYmxlLCBhbmQgbWFnaWNhbGx5IGlnbm9yaW5nIHRoZSBQcm9jJ3MgYHNlbGZgIGlzIGNv bmNlcHR1YWxseSB1Z2x5IGFuZCBJIGJlbGlldmUgdmVyeSBjb25mdXNpbmcgZm9yIG1hbnkuCk1h eWJlIGBSYWN0b3IubWFrZV9zaGFyZWFibGUoc29tZVByb2MpYCBzaG91bGQgcmV0dXJuIGEgUHJv YyB3aXRoIGEgc3BlY2lhbCByZWNlaXZlciAoZS5nLiwgUXVuZGVmKSwgd2hpY2ggc2ltcGx5IGNh bid0IGJlIGNhbGxlZCB2aWEgYC5jYWxsYCBvbiBhbnkgUmFjdG9yIGFuZCBjYW4gb25seSBiZSBj YWxsZWQgdmlhIGBQcm9jI2JpbmRfY2FsbGAuClRoZW4gYXQgbGVhc3QgdGhhdCBzaGFyZWFibGUg UHJvYyB3b3VsZG4ndCByZWZlciB0byBhbnkgdW5zaGFyZWQgb2JqZWN0ICh3aGljaCB3b3VsZCB2 aW9sYXRlIHRoZSBkb2NzIGFuZCBleHBlY3RlZCBzZW1hbnRpY3Mgb2YgYFJhY3Rvci5tYWtlX3No YXJlYWJsZWApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZlYXR1 cmUgIzE4Mjc2OiBgUHJvYyNiaW5kX2NhbGwob2JqKWAgc2FtZSBhcyBgb2JqLmluc3RhbmNlX2V4 ZWMoLi4uLCAmcHJvY19vYmopYApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTgy NzYjY2hhbmdlLTk0NDA4CgoqIEF1dGhvcjoga28xIChLb2ljaGkgU2FzYWRhKQoqIFN0YXR1czog T3BlbgoqIFByaW9yaXR5OiBOb3JtYWwKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpgUHJvYyNiaW5kX2NhbGwob2JqKWAgc2FtZSBhcyBgb2JqLmluc3RhbmNlX2V4ZWMo Li4uLCAmcHJvY19vYmopYAoKYGBgcnVieQpwcm9jX29iaiA9IHByb2N7fHBhcmFtcy4uLnwgLi4u fQpvYmouaW5zdGFuY2VfZXhlYyhwYXJhbXMuLi4sICZwcm9jX29iaikKYGBgCgppcyBmcmVxdWVu dCBwYXR0ZXJuLgoKYGBgCiQgZ2VtLWNvZGVzZWFyY2ggJ2luc3RhbmNlX2V4ZWMuK1wmJyB8IHdj IC1sCjk1NTgKYGBgCgpIb3cgYWJvdXQgdG8gaW50cm9kdWNlIG5ldyBtZXRob2QgYFByb2MjYmlu ZF9jYWxsYD8KCmBgYHJ1YnkKY2xhc3MgUHJvYwogIGRlZiBiaW5kX2NhbGwgb2JqLCAqYXJncwog ICAgb2JqLmluc3RhbmNlX2V4ZWMoKmFyZ3MsICZzZWxmKQogIGVuZAplbmQKCnByID0gLT57IHAg c2VsZiB9CnByLmJpbmRfY2FsbCgiaGVsbG8iKSAjPT4gImhlbGxvIgpwci5iaW5kX2NhbGwobmls KSAgICAgIz0+IG5pbApgYGAKCkl0IGlzIHNpbWlsYXIgdG8gYFVuYm91bmRNZXRob2QjYmluZF9j YWxsYC4KCi0tLS0KCk15IG1vdGl2YXRpb247CgpJIHdhbnQgdG8gc29sdmUgc2hhcmVhYmxlIFBy b2MncyBpc3N1ZSBodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTgyNDMgYW5kIG9u ZSBpZGVhIGlzIHRvIHByb2hpYml0IGBQcm9jI2NhbGxgIGZvciBzaGFyZWFibGUgUHJvYydzLCBi dXQgYWxsb3cgYG9iai5pbnN0YW5jZV9leGVjKCZwcilgLiBUbyBtYWtlIHNob3J0Y3V0LCBJIHdh bnQgdG8gaW50cm9kdWNlIGBQcm9jI2JpbmRfY2FsbGAuCgpgVW5ib3VuZFByb2NgIGlzIGFub3Ro ZXIgaWRlYSwgYnV0IEknbSBub3Qgc3VyZSBpdCBpcyBnb29kIGlkZWEuLi4KCkFueXdheSwgd2Ug Zm91bmQgdGhhdCB0aGVyZSBhcmUgbWFueSB1c2FnZSBvZiBgaW5zdGFuY2VfZXhlYygmcHJvY19v YmopYCwgc28gYFByb2MjYmluZF9jYWxsYCBpcyB1c2VmdWwgbm90IGZvciBSYWN0b3JzLgoKCgot LSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5 LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8v bGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==