[ruby-core:122828] [Ruby Feature#21515] Add `&return` as sugar for `x=my_calculation; return x if x`
From:
lpogic via ruby-core <ruby-core@...>
Date:
2025-07-20 09:50:42 UTC
List:
ruby-core #122828
SXNzdWUgIzIxNTE1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbHBvZ2ljICjFgXVrYXN6IFBvbWlldMWC bykuDQoNCg0KVGhlIGFkdmFudGFnZSBvZiB0aGUgcHJvcG9zZWQgc3ludGF4IGlzIHRoYXQgaXQg ZG9lcyBub3QgcmVxdWlyZSBhbiBleHBsaWNpdCBkZWNsYXJhdGlvbiBvZiBhbiBhdXhpbGlhcnkg dmFyaWFibGUsIGxpa2UgaGVyZToNCmBgYHJiDQpyZXR1cm4gcmVzdWx0IGlmIHJlc3VsdCA9IG15 X2NhbGN1bGF0aW9uKGlucHV0X2EsIGlucHV0X2IpDQpgYGANCmFuZCBoZXJlOg0KYGBgcmINCngg PSBteV9jYWxjdWxhdGlvbihpbnB1dF9hLCBpbnB1dF9iKSBhbmQgcmV0dXJuIHgNCmBgYA0KSXQg YWxzbyBkb2VzIG5vdCByZXF1aXJlIGNyZWF0aW5nIGFuIGV4dHJhIFByb2MgbGlrZSBoZXJlOg0K YGBgcmINCm15X2NhbGN1bGF0aW9uKGlucHV0X2EsIGlucHV0X2IpJi50aGVue3JldHVybiBpdH0N CmBgYA0KDQpJcyB0aGVyZSBhbnkgb3RoZXIgd2F5IHRvIHdyaXRlIHRoaXMgd2l0aG91dCB0aGUg Y29uc2VxdWVuY2VzIEkgbWVudGlvbmVkPw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQpGZWF0dXJlICMyMTUxNTogQWRkIGAmcmV0dXJuYCBhcyBzdWdhciBmb3Ig YHg9bXlfY2FsY3VsYXRpb247IHJldHVybiB4IGlmIHhgDQpodHRwczovL2J1Z3MucnVieS1sYW5n Lm9yZy9pc3N1ZXMvMjE1MTUjY2hhbmdlLTExNDExNw0KDQoqIEF1dGhvcjogbmhvcnRvbiAoTm9h aCBIb3J0b24pDQoqIFN0YXR1czogT3Blbg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KTGV0IG1lIHByZWZhY2UgdGhpcyBieSBzYXlpbmcgSSBoYXZlIG5vIG1hcnJp YWdlIHRvIHRoZSBleGFjdCBrZXl3b3JkIG5hbWUgb2YgYCZyZXR1cm5gLg0KDQojIFByb2JsZW0N Ckl0IGlzIHZlcnkgY29tbW9uIHRvIGhhdmUgYW4gZWFybHkgcmV0dXJuIGluIGNvZGUgd2hlcmUg eW91IGdldCBzb21lIGluaXRpYWwgdmFsdWUgYW5kIHJldHVybiBpdCBpZiBpdCBpcyBub24tbnVs bC4gaS5lLg0KDQpgYGANCnJldHVybiBteV9jYWxjdWxhdGlvbihpbnB1dF9hLCBpbnB1dF9iKSBp ZiBteV9jYWxjdWxhdGlvbihpbnB1dF9hLCBpbnB1dF9iKQ0KYGBgDQoNClRoYXQgZm9ybSBvbiBp dHMgb3duIGlzIHZlcmJvc2UgYW5kIG9uZSB3aGVyZSB5b3UgbmVlZCB0byBsb29rIGF0IGl0IGZv ciBhIG1vbWVudCB0byBjb25maXJtIGl0IGlzIHRoZSBzYW1lIGNvZGUgb24gZWl0aGVyIHNpZGUg b2YgdGhlIGlmLg0KDQpJZiBgbXlfY2FsY3VsYXRpb25gIGlzIG5vbi10cml2aWFsIGF0IGFsbCwg aXQgbm9ybWFsbHkgZ2V0cyB0dXJuZWQgaW50byBzb21ldGhpbmcgd2l0aCBhIHZhcmlhYmxlOg0K DQpgYGANCm15X2NhbGMgPSBteV9jYWxjdWxhdGlvbihpbnB1dF9hLCBpbnB1dF9iKQ0KcmV0dXJu IG15X2NhbGMgaWYgbXlfY2FsYw0KYGBgDQoNClRoYXQgaXMgbm93IHR3byBsaW5lcy4gVGhlIHdv cnNlIHNjZW5hcmlvLCBob3dldmVyLCBpcyBpZiB0aGUgdXNlciBkaWQgbm90IGJvdGhlciBkb2lu ZyB0aGF0IGFuZCBteV9jYWxjdWxhdGlvbiB0dXJuZWQgb3V0IHRvIGJlIGV4cGVuc2l2ZSAoYW5k IHRoZXkgZGlkIG5vdCBrbm93IGl0KS4NCg0KIyBQcm9wb3NhbA0KSSBwcm9wb3NlIGEgc3ludGF4 IG9mIGAmcmV0dXJuIG15X2NhbGN1bGF0aW9uKGlucHV0X2EsIGlucHV0X2IpYCB3aGVyZSBpdCB3 aWxsIGV2YWx1YXRlIHRoZSBhcmd1bWVudCBhbmQgcmV0dXJuIGl0IGFzIHRoZSByZXN1bHQgb2Yg dGhlIG1ldGhvZCBpZiBpdCBpcyBub24tbmlsLCBvdGhlcndpc2UgaXQgd2lsbCBjb250aW51ZSBv bi4NCg0KIyBBbHRlcm5hdGl2ZXMNCiMjIERvIE5vdGhpbmcNClRoZXJlIGlzIG5vIHdheSB0byB3 b3JrIGFyb3VuZCB0aGlzIHdpdGggcm9sbGluZyB5b3VyIG93biBtZXRob2RzLiBZb3UgY2FuJ3Qg bWFrZSBhIGByZXR1cm5pZmAgbWV0aG9kIG9yIHNvbWV0aGluZyB5b3Vyc2VsZiBzaW5jZSB5b3Ug Y2FuJ3QgZG8gYSByZXR1cm4gaW4gdGhlIGNhbGxlcidzIHNjb3BlLg0KDQojIyBEaWZmZXJlbnQg TmFtZQ0KDQpUaGUgYmVzdCBvdGhlciBuYW1lIEkgc2F3IHdlcmUgcGVybXV0YXRpb25zIG9mIGBy ZXR1cm5pZmAuIFRoZSBiaWdnZXN0IGlzc3VlIEkgc2VlIGlzIHRoZSBzaW1pbGFyaXR5IG9mIHRo ZSBmb2xsb3dpbmcgdHdvIHN0YXRlbWVudHM6DQoNCmBgYA0KcmV0dXJuIGlmIGZvbw0KcmV0dXJu aWYgZm9vDQpgYGANCg0KVGhvc2UgYXJlIG9idmlvdXNseSB2ZXJ5LCB2ZXJ5IGRpZmZlcmVudCBz dGF0ZW1lbnRzLCBidXQgYXJlIHNvbWV3aGF0IHNpbWlsYXIuIEhvd2V2ZXIsIHRoaW5ncyBsaWtl IHRoaXMgYXJlIGNvbW1vbiwgYW5kIHRoZSBjb2RlIGlzIHN0aWxsIHF1aXRlIGRpc3RpbmN0IG9u IHRob3NlLCBzbyBJIHRoaW5rIGl0IGlzIGFjY2VwdGFibGUuDQoNClVsdGltYXRlbHksIHRoaXMg ZmVlbHMgc28gc2ltaWxhciB0byB0aGUgc2FmZSBuYXZpZ2F0b3IgdGhhdCB1c2luZyBgJmAgaW4g dGhpcyBjb250ZXh0IGZlZWxzIGFwcHJvcHJpYXRlLg0KDQpUaGFuayB5b3UgYWxsIGZvciB5b3Vy IGNvbnNpZGVyYXRpb24uDQoNCg0KDQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9y Zy8NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KIHJ1Ynkt Y29yZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vi c2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcK IHJ1YnktY29yZSBpbmZvIC0tIGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9saXN0 cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8K