[ruby-core:122829] [Ruby Feature#21515] Add `&return` as sugar for `x=my_calculation; return x if x`
From:
"jeremyevans0 (Jeremy Evans) via ruby-core" <ruby-core@...>
Date:
2025-07-20 16:29:45 UTC
List:
ruby-core #122829
SXNzdWUgIzIxNTE1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgamVyZW15ZXZhbnMwIChKZXJlbXkgRXZh bnMpLg0KDQoNCmxwb2dpYyAoxYF1a2FzeiBQb21pZXTFgm8pIHdyb3RlIGluICNub3RlLTU6DQo+ IFRoZSBhZHZhbnRhZ2Ugb2YgdGhlIHByb3Bvc2VkIHN5bnRheCBpcyB0aGF0IGl0IGRvZXMgbm90 IHJlcXVpcmUgYW4gZXhwbGljaXQgZGVjbGFyYXRpb24gb2YgYW4gYXV4aWxpYXJ5IHZhcmlhYmxl LCBsaWtlIGhlcmU6DQo+IGBgYHJiDQo+IHJldHVybiByZXN1bHQgaWYgcmVzdWx0ID0gbXlfY2Fs Y3VsYXRpb24oaW5wdXRfYSwgaW5wdXRfYikNCj4gYGBgDQo+IGFuZCBoZXJlOg0KPiBgYGByYg0K PiB4ID0gbXlfY2FsY3VsYXRpb24oaW5wdXRfYSwgaW5wdXRfYikgYW5kIHJldHVybiB4DQo+IGBg YA0KPiBJdCBhbHNvIGRvZXMgbm90IHJlcXVpcmUgY3JlYXRpbmcgYW4gZXh0cmEgUHJvYyBsaWtl IGhlcmU6DQo+IGBgYHJiDQo+IG15X2NhbGN1bGF0aW9uKGlucHV0X2EsIGlucHV0X2IpJi50aGVu e3JldHVybiBpdH0NCj4gYGBgDQoNCk5vdCBzdXJlIHdoeSB0aGUgbG9jYWwgdmFyaWFibGUgZGVj bGFyYXRpb24gd291bGQgbWF0dGVyLCBhcyBsb25nIGFzIHlvdSBkb24ndCBwaWNrIG9uZSBhbHJl YWR5IGluIHVzZS4gIEhvd2V2ZXIsIHlvdSBhcmUgaW5jb3JyZWN0IGFib3V0IGBteV9jYWxjdWxh dGlvbihpbnB1dF9hLCBpbnB1dF9iKSYudGhlbntyZXR1cm4gaXR9YCBjcmVhdGluZyBhIFByb2Mu IFVzaW5nIGEgYmxvY2sgZG9lcyBub3QgYXV0b21hdGljYWxseSBjcmVhdGUgYSBQcm9jICh0aGF0 IHdvdWxkIGJlIHZlcnkgc2xvdykuIFVzaW5nIGAmLnRoZW57cmV0dXJuIGl0fWAgZG9lcyBub3Qg Y3JlYXRlIGEgUHJvYzoNCg0KYGBgcnVieQ0KZGVmIG15X2NhbGN1bGF0aW9uKGEsIGIpDQogIGEg PT0gYiB8fCBuaWwNCmVuZA0KDQpkZWYgdChhLCBiKQ0KICBteV9jYWxjdWxhdGlvbihhLCBiKSYu dGhlbntyZXR1cm4gaXR9DQogIHByb2N7fQ0KZW5kDQoNCmJlZm9yZSA9IHt9DQphZnRlciA9IHt9 DQoNCmNhc2VzID0gW1sxLCAxXSwgWzEsIDJdXQ0KR0Muc3RhcnQNCkdDLmRpc2FibGUNCmNhc2Vz LmVhY2ggZG8gfGEsIGJ8DQogIE9iamVjdFNwYWNlLmNvdW50X29iamVjdHMoYmVmb3JlKQ0KICBj ID0gdChhLCBiKQ0KICBPYmplY3RTcGFjZS5jb3VudF9vYmplY3RzKGFmdGVyKQ0KICAjIFByb2Nz IGhhdmUgVF9EQVRBIGludGVybmFsIHR5cGUNCiAgcCBbYSwgYiwgYywgYWZ0ZXJbOlRfREFUQV0g LSBiZWZvcmVbOlRfREFUQV1dDQplbmQNCmBgYA0KDQpPdXRwdXQ6DQoNCmBgYA0KWzEsIDEsIHRy dWUsIDBdDQpbMSwgMiwgIzxQcm9jOjB4MDAwMDAxMWZlNDAxZjMxMCAtOjc+LCAxXQ0KYGBgDQoN Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzIxNTE1 OiBBZGQgYCZyZXR1cm5gIGFzIHN1Z2FyIGZvciBgeD1teV9jYWxjdWxhdGlvbjsgcmV0dXJuIHgg aWYgeGANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8yMTUxNSNjaGFuZ2UtMTE0 MTE4DQoNCiogQXV0aG9yOiBuaG9ydG9uIChOb2FoIEhvcnRvbikNCiogU3RhdHVzOiBPcGVuDQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpMZXQgbWUgcHJlZmFjZSB0 aGlzIGJ5IHNheWluZyBJIGhhdmUgbm8gbWFycmlhZ2UgdG8gdGhlIGV4YWN0IGtleXdvcmQgbmFt ZSBvZiBgJnJldHVybmAuDQoNCiMgUHJvYmxlbQ0KSXQgaXMgdmVyeSBjb21tb24gdG8gaGF2ZSBh biBlYXJseSByZXR1cm4gaW4gY29kZSB3aGVyZSB5b3UgZ2V0IHNvbWUgaW5pdGlhbCB2YWx1ZSBh bmQgcmV0dXJuIGl0IGlmIGl0IGlzIG5vbi1udWxsLiBpLmUuDQoNCmBgYA0KcmV0dXJuIG15X2Nh bGN1bGF0aW9uKGlucHV0X2EsIGlucHV0X2IpIGlmIG15X2NhbGN1bGF0aW9uKGlucHV0X2EsIGlu cHV0X2IpDQpgYGANCg0KVGhhdCBmb3JtIG9uIGl0cyBvd24gaXMgdmVyYm9zZSBhbmQgb25lIHdo ZXJlIHlvdSBuZWVkIHRvIGxvb2sgYXQgaXQgZm9yIGEgbW9tZW50IHRvIGNvbmZpcm0gaXQgaXMg dGhlIHNhbWUgY29kZSBvbiBlaXRoZXIgc2lkZSBvZiB0aGUgaWYuDQoNCklmIGBteV9jYWxjdWxh dGlvbmAgaXMgbm9uLXRyaXZpYWwgYXQgYWxsLCBpdCBub3JtYWxseSBnZXRzIHR1cm5lZCBpbnRv IHNvbWV0aGluZyB3aXRoIGEgdmFyaWFibGU6DQoNCmBgYA0KbXlfY2FsYyA9IG15X2NhbGN1bGF0 aW9uKGlucHV0X2EsIGlucHV0X2IpDQpyZXR1cm4gbXlfY2FsYyBpZiBteV9jYWxjDQpgYGANCg0K VGhhdCBpcyBub3cgdHdvIGxpbmVzLiBUaGUgd29yc2Ugc2NlbmFyaW8sIGhvd2V2ZXIsIGlzIGlm IHRoZSB1c2VyIGRpZCBub3QgYm90aGVyIGRvaW5nIHRoYXQgYW5kIG15X2NhbGN1bGF0aW9uIHR1 cm5lZCBvdXQgdG8gYmUgZXhwZW5zaXZlIChhbmQgdGhleSBkaWQgbm90IGtub3cgaXQpLg0KDQoj IFByb3Bvc2FsDQpJIHByb3Bvc2UgYSBzeW50YXggb2YgYCZyZXR1cm4gbXlfY2FsY3VsYXRpb24o aW5wdXRfYSwgaW5wdXRfYilgIHdoZXJlIGl0IHdpbGwgZXZhbHVhdGUgdGhlIGFyZ3VtZW50IGFu ZCByZXR1cm4gaXQgYXMgdGhlIHJlc3VsdCBvZiB0aGUgbWV0aG9kIGlmIGl0IGlzIG5vbi1uaWws IG90aGVyd2lzZSBpdCB3aWxsIGNvbnRpbnVlIG9uLg0KDQojIEFsdGVybmF0aXZlcw0KIyMgRG8g Tm90aGluZw0KVGhlcmUgaXMgbm8gd2F5IHRvIHdvcmsgYXJvdW5kIHRoaXMgd2l0aCByb2xsaW5n IHlvdXIgb3duIG1ldGhvZHMuIFlvdSBjYW4ndCBtYWtlIGEgYHJldHVybmlmYCBtZXRob2Qgb3Ig c29tZXRoaW5nIHlvdXJzZWxmIHNpbmNlIHlvdSBjYW4ndCBkbyBhIHJldHVybiBpbiB0aGUgY2Fs bGVyJ3Mgc2NvcGUuDQoNCiMjIERpZmZlcmVudCBOYW1lDQoNClRoZSBiZXN0IG90aGVyIG5hbWUg SSBzYXcgd2VyZSBwZXJtdXRhdGlvbnMgb2YgYHJldHVybmlmYC4gVGhlIGJpZ2dlc3QgaXNzdWUg SSBzZWUgaXMgdGhlIHNpbWlsYXJpdHkgb2YgdGhlIGZvbGxvd2luZyB0d28gc3RhdGVtZW50czoN Cg0KYGBgDQpyZXR1cm4gaWYgZm9vDQpyZXR1cm5pZiBmb28NCmBgYA0KDQpUaG9zZSBhcmUgb2J2 aW91c2x5IHZlcnksIHZlcnkgZGlmZmVyZW50IHN0YXRlbWVudHMsIGJ1dCBhcmUgc29tZXdoYXQg c2ltaWxhci4gSG93ZXZlciwgdGhpbmdzIGxpa2UgdGhpcyBhcmUgY29tbW9uLCBhbmQgdGhlIGNv ZGUgaXMgc3RpbGwgcXVpdGUgZGlzdGluY3Qgb24gdGhvc2UsIHNvIEkgdGhpbmsgaXQgaXMgYWNj ZXB0YWJsZS4NCg0KVWx0aW1hdGVseSwgdGhpcyBmZWVscyBzbyBzaW1pbGFyIHRvIHRoZSBzYWZl IG5hdmlnYXRvciB0aGF0IHVzaW5nIGAmYCBpbiB0aGlzIGNvbnRleHQgZmVlbHMgYXBwcm9wcmlh dGUuDQoNClRoYW5rIHlvdSBhbGwgZm9yIHlvdXIgY29uc2lkZXJhdGlvbi4NCg0KDQoNCg0KDQot LSANCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNv cmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5 LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9t bC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcub3Jn Lwo=