[ruby-core:112742] [Ruby master Feature#19432] Introduce a wrapping operator (&) to Proc
From:
"joel@... (Joel Drapper) via ruby-core" <ruby-core@...>
Date:
2023-03-08 12:14:35 UTC
List:
ruby-core #112742
SXNzdWUgIzE5NDMyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgam9lbEBkcmFwcGVyLm1lIChKb2VsIERy YXBwZXIpLg0NCg0NCg0NCllvdXIgZXhhbXBsZXMgb2YsIGBzdHJvbmdgIGFuZCBgZW1gIHJldHVy biBhIHN0cmluZyBidXQgdGhleSBkb24ndCBidWZmZXIgaXQgYW55d2hlcmUuIEluIG9yZGVyIHRv IHVzZSB0aGVtIGxpa2UgdGhpcywgdGhleSB3b3VsZCBuZWVkIHRvIGJ1ZmZlciB0aGUgb3Blbmlu ZyB0YWcsIHlpZWxkLCBhbmQgdGhlbiBidWZmZXIgdGhlIGNsb3NpbmcgdGFnLg0NCg0NCmBgYHJ1 YnkNDQpzdHJvbmcgeyBlbSB7IHRleHQoIkhlbGxvIikgfSB9DQ0KYGBgDQ0KDQ0KKipJbXBsZW1l bnRhdGlvbioqDQ0KDQ0KYGBgcnVieQ0NCmRlZiBzdHJvbmcgPSBAYnVmZmVyIDw8ICI8c3Ryb25n PiI7IHlpZWxkOyBAYnVmZmVyIDw8ICI8L3N0cm9uZz4iDQ0KZGVmIGVtID0gQGJ1ZmZlciA8PCAi PGVtPiI7IHlpZWxkOyBAYnVmZmVyIDw8ICI8L2VtPiINDQpkZWYgdGV4dCh2YWx1ZSkgPSBAYnVm ZmVyIDw8IEVSQjo6RXNjYXBlLmh0bWxfZXNjYXBlKHZhbHVlKQ0NCmBgYA0NCg0NCkdpdmVuIHRo aXMgaW50ZXJmYWNlLCBpZiB5b3Ugd2VyZSB2aXNpdGluZyBhbiBBU1QgKGZyb20gTWFya2Rvd24g b3IgYW4gZWRpdG9yIGxpa2UgVGlwVGFwKSwgaXQgd291bGQgYmUgdXNlZnVsIHRvIGhhdmUgYW4g b3BlcmF0b3IgZm9yIFByb2MgdGhhdCB3cmFwcyBvbmUgcHJvYyBpbiBhbm90aGVyLCBhcyBJIHNo b3dlZCBpbiB0aGUgb3JpZ2luYWwgcG9zdC4NDQoNDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQ0KRmVhdHVyZSAjMTk0MzI6IEludHJvZHVjZSBhIHdyYXBwaW5nIG9w ZXJhdG9yICgmKSB0byBQcm9jDQ0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE5 NDMyI2NoYW5nZS0xMDIyMDENDQoNDQoqIEF1dGhvcjogam9lbEBkcmFwcGVyLm1lIChKb2VsIERy YXBwZXIpDQ0KKiBTdGF0dXM6IEZlZWRiYWNrDQ0KKiBQcmlvcml0eTogTm9ybWFsDQ0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0NCkkgZG9uJ3Qga25vdyBpZiB0aGlz IGNvbmNlcHQgZXhpc3RzIHVuZGVyIGFub3RoZXIgbmFtZSwgb3Igd2hldGhlciB0aGVyZeKAmXMg YSB0ZWNobmljYWwgdGVybSBmb3IgaXQuIEkgb2Z0ZW4gZmluZCBteXNlbGYgd2FudGluZyB0byB3 cmFwIGEgcHJvYyBpbiBhbm90aGVyIHByb2MuDQ0KDQ0KSGVyZSdzIGEgc25pcHBldCBmcm9tIGEg cmVjZW50IGV4YW1wbGUgd2hlcmUgYSB2aXNpdG9yIGNsYXNzIHJlbmRlcnMgYSBUaXBUYXAgQVNU LiBHaXZlbiBhIGB0ZXh0YCBub2RlLCB3ZSB3YW50IHRvIG91dHB1dCB0aGUgdGV4dCBieSBjYWxs aW5nIHRoZSBgdGV4dGAgbWV0aG9kIHdpdGggdGhlIHZhbHVlLiBCdXQgaWYgdGhlIHRleHQgaGFz IGBtYXJrc2AsIHdlIHdhbnQgdG8gaXRlcmF0ZSB0aHJvdWdoIGVhY2ggbWFyaywgd3JhcHBpbmcg dGhlIG91dHB1dCBmb3IgZWFjaCBtYXJrLiBJdCdzIHBvc3NpYmxlIHRvIGRvIHRoaXMgdXNpbmcg dGhlIGA+Pj1gIG9wZXJhdG9yIGlmIGVhY2ggcHJvYyBleHBsaWNpdGx5IHJldHVybnMgYW5vdGhl ciBwcm9jLg0NCg0NCmBgYHJ1YnkNDQp3aGVuICJ0ZXh0Ig0NCiAgcmVzdWx0ID0gLT4geyAtPiB7 IHRleHQgbm9kZVsidGV4dCJdIH0gfQ0NCg0NCiAgbm9kZVsibWFya3MiXSYuZWFjaCBkbyB8bWFy a3wNDQogICAgY2FzZSBtYXJrWyJ0eXBlIl0NDQogICAgd2hlbiAiYm9sZCINDQogICAgICByZXN1 bHQgPj49IC0+IChyKSB7IC0+IHsgc3Ryb25nIHsgci5jYWxsIH0gfSB9DQ0KICAgIHdoZW4gIml0 YWxpYyINDQogICAgICByZXN1bHQgPj49IC0+IChyKSB7IC0+IHsgZW0geyByLmNhbGwgfSB9IH0N DQogICAgZW5kDQ0KICBlbmQNDQoNDQogIHJlc3VsdC5jYWxsLmNhbGwNDQplbmQNDQpgYGANDQoN DQpUaGlzIGlzIHF1aXRlIGRpZmZpY3VsdCB0byBmb2xsb3cgYW5kIHRoZSBgcmVzdWx0LmNhbGwu Y2FsbGAgZmVlbHMgd3JvbmcuIEkgdGhpbmsgdGhlIGNvbmNlcHQgb2Ygd3JhcHBpbmcgb25lIHBy b2MgaW4gYW5vdGhlciBwcm9jIHdvdWxkIG1ha2UgZm9yIGEgZ3JlYXQgYWRkaXRpb24gdG8gYFBy b2NgIGl0c2VsZi4gSSBwcm90b3R5cGVkIHRoaXMgdXNpbmcgdGhlIGAmYCBvcGVyYXRvci4NDQoN DQpgYGBydWJ5DQ0KY2xhc3MgUHJvYw0NCiAgZGVmICYob3RoZXIpDQ0KICAgIC0+IHsgb3RoZXIu Y2FsbChzZWxmKSB9DQ0KICBlbmQNDQplbmQNDQpgYGANDQoNDQpXaXRoIHRoaXMgZGVmaW5pdGlv biwgd2UgY2FuIGNhbGwgYCZgIG9uIHRoZSBvcmlnaW5hbCBwcm9jIHdpdGggb3VyIG90aGVyIHBy b2MgdG8gcmV0dXJuIGEgbmV3IHByb2MgdGhhdCBjYWxscyB0aGUgb3RoZXIgcHJvYyB3aXRoIHRo ZSBvcmlnaW5hbCBwcm9jIGFzIGFuIGFyZ3VtZW50LiBJdCBhbHNvIHdvcmtzIHdpdGggYCY9YCwg c28gdGhlIGFib3ZlIGNvZGUgY2FuIGJlIHJlZmFjdG9yZWQgdG8gdGhpczoNDQoNDQpgYGBydWJ5 DQ0Kd2hlbiAidGV4dCINDQogIHJlc3VsdCA9IC0+IHsgdGV4dCBub2RlWyJ0ZXh0Il0gfQ0NCg0N CiAgbm9kZVsibWFya3MiXSYuZWFjaCBkbyB8bWFya3wNDQogICAgY2FzZSBtYXJrWyJ0eXBlIl0N DQogICAgd2hlbiAiYm9sZCINDQogICAgICByZXN1bHQgJj0gLT4gKHIpIHsgc3Ryb25nIHsgci5j YWxsIH0gfQ0NCiAgICB3aGVuICJpdGFsaWMiDQ0KICAgICAgcmVzdWx0ICY9IC0+IChyKSB7IGVt IHsgci5jYWxsIH0gfQ0NCiAgICBlbmQNDQogIGVuZA0NCg0NCiAgcmVzdWx0LmNhbGwNDQplbmQN DQpgYGANDQoNDQoNDQoNDQotLSANDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NDQogX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1h aWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUg c2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1j b3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL3Bvc3Rvcml1cy9s aXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8=