[ruby-core:95704] [Ruby master Feature#16295] Chainable aliases for String#-@ and String#+@
From:
shevegen@...
Date:
2019-11-05 16:33:52 UTC
List:
ruby-core #95704
SXNzdWUgIzE2Mjk1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgc2hldmVnZW4gKFJvYmVydCBBLiBIZWls ZXIpLg0KDQoNCkkgYWdyZWUgdGhhdCArIGFuZCAtIGFyZSBub3QgdmVyeSBlbGVnYW50LiBUaGV5 IGFyZSBzaG9ydCwgc28gdXNlZnVsLCBidXQgdGhpcyBpcyBhY3R1YWxseQ0KdGhlIG1haW4gcmVh c29uIHdoeSBJIHByZWZlciB0aGUgbXVjaCBsb25nZXIgLmR1cCBpbnN0ZWFkLCBhbmQgZG9uJ3Qg dXNlICsgYW5kIC0uDQoNCkkgb2Z0ZW4gcHJlZmVyIHNob3J0IGVuZ2xpc2ggd29yZHMvbmFtZXMs IHdpdGhpbiByZWFzb24uIEl0IGlzIGFsd2F5cyBhIHRyYWRlIG9mZiBvZiBjb3Vyc2UuDQpSdWJ5 IG9mdGVuIGFsbG93cyAiYm90aCIgc3R5bGVzLg0KDQo+IFRoZXkgdmVyeSBvZnRlbiBmb3JjZSB0 byB1c2UgcGFyZW50aGVzZXMsIHdoaWNoIGlzIGFubm95aW5nDQoNCkkgYWdyZWUgaW4gZ2VuZXJh bC4gQmVpbmcgYWJsZSB0byBvbWl0IHBhcmVucyBpcyBncmVhdC4gSSBwZXJzb25hbGx5IHVzZSBw YXJlbnMgaW4NCm1ldGhvZCBkZWZpbml0aW9ucyBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgYXJn dW1lbnQ7IG90aGVyIHJ1YnkgdXNlcnMgb21pdCB0aGUgcGFyZW5zDQpjb21wbGV0ZWx5LCB3aGlj aCBJIGNhbiB1bmRlcnN0YW5kLCBldmVuIGlmIEkgZG9uJ3QgdXNlIHRoYXQgc3R5bGUuIEJ1dCBt b3JlIGltcG9ydGFudGx5DQpJIGFncmVlIHRoYXQgYmVpbmcgYWJsZSB0byBkZWNpZGUgd2hldGhl ciB0byB1c2UgcGFyZW5zIG9yIG5vdCBpcyBHUkVBVC4gSW4gcHl0aG9uIHlvdQ0KYXJlIGZvcmNl ZCB0byB1c2UgdGhlbSwgYW5kIEkgZmluZCB0aGlzIGFubm95aW5nLiAoSSByZWFsbHkgdGhpbmsg cnVieSBpcyBiZXR0ZXIgdGhhbg0KcHl0aG9uIGluIG1hbnkgd2F5cy4pDQoNClRvIHRoZSBzdWdn ZXN0aW9uIGl0c2VsZiBmb3IgdGhlIG5hbWVzOg0KDQpJIHRoaW5rIGFsbCBvZiBkZWR1cCwgZGVk dXBsaWNhdGUsIG11dGFibGUgb3IgbXV0IGFyZSBhIGJpdCAuLi4gY2x1bXN5Lg0KDQpJRiB0aGUg cXVlc3Rpb24gd2VyZSBTT0xFTFkgYmV0d2VlbjoNCg0KICAgIGRlZHVwIHZlcnN1cyBkZWR1cGxp Y2F0ZQ0KDQphbmQNCg0KICAgIG11dCB2ZXJzdXMgbXV0YWJsZQ0KDQpUaGVuIEkgdGhpbmsgdGhl IHNob3J0ZXIgbmFtZXMgd291bGQgYmUgYSB0aW55IGJpdCBiZXR0ZXIuIEJ1dCAuZGVkdXAgaXMg bm90IGEgZ3JlYXQgbmFtZSwNCmFuZCAubXV0IGlzIGEgYml0IGNvbmZ1c2luZy4gLmRlZHVwbGlj YXRlIHNlZW1zIHRvbyBsb25nLCBJIGFjdHVhbGx5IHR5cG9lZCB3aGVuIEkgdHJpZWQNCnRvIHdy aXRlIGl0IGp1c3Qgbm93IDopIC0gLm11dGFibGUgaXMgLi4uIGhtbS4gVGhlIG5hbWUgc2VlbXMg YSBiaXQgbW9yZSBsaWtlIC5tdXRhYmxlPw0KdG8gbWUsIGFzIGEgcXVlcnkgbWV0aG9kLg0KDQpJ IGFtIG5vdCBzdXJlIHRoYXQgdGhlc2UgbmFtZXMgYXJlIGdyZWF0Lg0KDQpQZXJoYXBzIHdlIGNh biBjb21lIHVwIHdpdGggbmFtZXMgdGhhdCBkZXNjcmliZSB0aGUgYmVoYXZpb3VyLCB3aXRob3V0 DQpoYXZpbmcgdG8gZm9jdXMgb24gKyBvciAtLg0KDQpJZiBJIHVuZGVyc3RhbmQgdGhlIHByb2Js ZW0gY29ycmVjdGx5IHRoZW4gdGhlIHByaW1hcnkgaXNzdWUgaXMgdG8gZmluZCBnb29kIG5hbWUN CmNhbmRpZGF0ZXM/IElmIHNvIHBlcmhhcHMgcGVvcGxlIGNhbiBnaXZlIHNvbWUgc3VnZ2VzdGlv bnMuDQoNClBlcmhhcHMgc29tZSBuYW1lIHdpdGggLmZyZWV6ZV8qIG9yIHNvbWV0aGluZyBsaWtl IHRoYXQsIG9yIC51bmZyZWV6ZSAobm90IHN1cmUNCmhlcmUsIEkgdGhpbmsgd2UgY2FuIG5vdCB1 bmZyZWV6ZSwgb25seSBmcmVlemUsIHNvIHN1Y2ggYSBuYW1lIG1heSBjYXVzZQ0KY29uZnVzaW9u KS4NCg0KQWN0dWFsbHkgd2UgYWxyZWFkeSBoYXZlIC5kdXAgd2hpY2ggSSBhc3N1bWUgaXMgc2hv cnQgZm9yIC5kdXBsaWNhdGUuIFNvIHBlcmhhcHMNCnRoZSBtZXRob2RzIGNvdWxkIGJlIGNlbnRl cmVkIGFyb3VuZCAuZHVwLg0KDQogICAgLmRlX2R1cA0KICAgIC51bl9kdXANCiAgICAuZHVwKw0K ICAgIC5kdXAtICAgICAgICMgb2sgb2sgdGhhdCBkb2VzIG5vdCB3b3JrIGJ1dCAuLi4NCiAgICAu ZHVwX3BsdXMNCiAgICAuZHVwX21pbnVzICAjIGNsdW1zeSB0b28gLi4uDQogICAgLmNoYWluX2R1 cCAgIyB1aG0gLi4uDQogICAgLmR1cF9jaGFpbiAgIyBzb3VuZHMgbGlrZSBhIG11c2ljIHNvbmcN CiAgICAuZnJlZXplX2R1cCAjIG5vIGlkZWEgd2h5IHRoaXMgZXZlbiBjYW1lIHVwIC4uLg0KICAg IC5kdXBwaXR5ICAgICMganVzdCBzb3VuZHMgZ29vZA0KDQpXZWxsIC0gc2hvcnQgYnJlYWsgZnJv bSBmaW5kaW5nIHNpbGx5IG5hbWVzIC4uLg0KDQpJZiB3ZSBsb29rIGF0IHRoZSBkb2N1bWVudGF0 aW9uLCB3ZSBoYXZlOg0KDQotLS0tLQ0KDQogK3N0ciDihpIgc3RyIChtdXRhYmxlKQ0KDQpJZiB0 aGUgc3RyaW5nIGlzIGZyb3plbiwgdGhlbiByZXR1cm4gZHVwbGljYXRlZCBtdXRhYmxlIHN0cmlu Zy4NCg0KSWYgdGhlIHN0cmluZyBpcyBub3QgZnJvemVuLCB0aGVuIHJldHVybiB0aGUgc3RyaW5n IGl0c2VsZi4NCg0KLXN0ciDihpIgc3RyIChmcm96ZW4pDQoNClJldHVybnMgYSBmcm96ZW4sIHBv c3NpYmx5IHByZS1leGlzdGluZyBjb3B5IG9mIHRoZSBzdHJpbmcuDQoNClRoZSBzdHJpbmcgd2ls bCBiZSBkZWR1cGxpY2F0ZWQgYXMgbG9uZyBhcyBpdCBpcyBub3QgdGFpbnRlZCwgb3IgaGFzIGFu eSBpbnN0YW5jZSB2YXJpYWJsZXMgc2V0IG9uIGl0Lg0KDQotLS0tLQ0KDQpTbyBob3cgYWJvdXQg Li4uDQoNCiAgIC5mcm96ZW5fY29weQ0KICAgLmZyb3plbl9vcl9jb3B5DQoNCkFjdHVhbGx5LCBy ZWFkaW5nIHRoZSBkb2N1bWVudGF0aW9uLCAuZGVkdXAgc2VlbXMgdG8gYmUgb2s6DQoNCiAgICAu ZGVkdXANCg0KRXZlbiBpZiB0aGUgbmFtZSBpcyBub3QgcGVyZmVjdCwgaXQgbWF5IGJlIGJldHRl ciB0aGFuIG5vdA0KaGF2aW5nIGFuIGFsdGVybmF0aXZlLg0KDQpJIGNhbid0IHJlYWxseSB0aGlu ayBvZiBhIGdyZWF0IG5hbWUgdGhvdWdoLiBQZXJoYXBzIG90aGVycyBjYW4NCmdpdmUgc29tZSBt b3JlIGlkZWFzLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpG ZWF0dXJlICMxNjI5NTogQ2hhaW5hYmxlIGFsaWFzZXMgZm9yIFN0cmluZyMtQCBhbmQgU3RyaW5n IytADQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTYyOTUjY2hhbmdlLTgyNDkw DQoNCiogQXV0aG9yOiBieXJvb3QgKEplYW4gQm91c3NpZXIpDQoqIFN0YXR1czogT3Blbg0KKiBQ cmlvcml0eTogTm9ybWFsDQoqIEFzc2lnbmVlOiANCiogVGFyZ2V0IHZlcnNpb246IA0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KT3JpZ2luYWwgZGlzY3Vzc2lvbiBo dHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTYxNTA/bmV4dF9pc3N1ZV9pZD0xNjE0 NyZwcmV2X2lzc3VlX2lkPTE2MTUzI25vdGUtNDANCg0KSW4gIzE2MTUwLCBAaGVhZGl1cyByYWlz ZWQgdGhlIGZvbGxvd2luZyBjb25jZXJuIGFib3V0IGBTdHJpbmcjLUBgIGFuZCBgU3RyaW5nIytA YDoNCg0KaGVhZGl1cyAoQ2hhcmxlcyBOdXR0ZXIpIHdyb3RlOg0KPiA+IE5vdCBleGFjdGx5LCAt QCBhbmQgK0AgbWFrZXMgdGhpcyBtdWNoIHNpbXBsZXINCj4gDQo+IEkgZG8gbGlrZSB0aGUgdW5h cnkgb3BlcmF0b3JzLCBidXQgdGhleSBhbHNvIGhhdmUgc29tZSBwcmVjZWRlbmNlIG9kZGl0aWVz Og0KPiANCj4gYGBgDQo+ID4+IC0iZm9vIi5zaXplDQo+ID0+IC0zDQo+ID4+ICgtImZvbyIpLnNp emUNCj4gPT4gMw0KPiBgYGANCj4gDQo+IEFuZCBpdCBkb2Vzbid0IHdvcmsgYXQgYWxsIGlmIHlv dSdyZSBjaGFpbmluZyBtZXRob2QgY2FsbHM6DQo+IA0KPiBgYGANCj4gPj4gK2FyeS50b19zLmZy b3plbj8NCj4gTm9NZXRob2RFcnJvcjogdW5kZWZpbmVkIG1ldGhvZCBgK0AnIGZvciBmYWxzZTpG YWxzZUNsYXNzDQo+IAlmcm9tIChpcmIpOjgNCj4gCWZyb20gL3Vzci9iaW4vaXJiOjExOmluIGA8 bWFpbj4nDQo+IGBgYA0KPiANCj4gQnV0IHlvdSBhcmUgcmlnaHQsIGluc3RlYWQgb2YgdGhlIGV4 cGxpY2l0IGBkdXBgIHdpdGggcG9zc2libGUgZnJlZXplIHlvdSBjb3VsZCB1c2UgYC1gIG9yIGAr YCBvbiB0aGUgcmVzdWx0IG9mIGB0b19zYC4gSG93ZXZlciBpdCdzIHN0aWxsIG5vdCBzYWZlIHRv IG1vZGlmeSBpdCBzaW5jZSBpdCB3b3VsZCBtb2RpZnkgdGhlIG9yaWdpbmFsIHN0cmluZyB0b28u DQoNCkFmdGVyIHdvcmtpbmcgZm9yIHF1aXRlIGEgd2hpbGUgd2l0aCB0aG9zZSwgSSBoYXZlIHRv IHNheSBJIGFncmVlLiBUaGV5IHZlcnkgb2Z0ZW4gZm9yY2UgdG8gdXNlIHBhcmVudGhlc2VzLCB3 aGljaCBpcyBhbm5veWluZywgYW5kIGFuIGluZGljYXRpb24gdGhhdCByZWd1bGFyIG1ldGhvZHMg d291bGQgYmUgcHJlZmVyYWJsZSB0byB1bmFyeSBvcGVyYXRvcnMuDQoNCg0KSW4gcmVzcG9uc2Ug QG1hdHogcHJvcG9zZWQgdG8gYWxpYXMgdGhlbSBhcyBgU3RyaW5nIytgIGFuZCBgU3RyaW5nIy1g IHdpdGhvdXQgYXJndW1lbnRzOg0KDQo+ICBIb3cgYWJvdXQgbWFraW5nIFN0cmluZyMrIGFuZCAj LSB3aXRob3V0IGFyZ3VtZW50IGJlaGF2ZSBsaWtlICMrQCBhbmQgIy1AIHJlc3BlY3RpdmVseSwg c28gdGhhdCB3ZSBjYW4gd3JpdGU6DQo+ICANCj4gIGBgYA0KPiAgImZvbyIuLS5zaXplDQo+ICBh cnkuKy50b19zLmZyb3plbj8NCj4gIGBgYA0KDQoNCk15IHBlcnNvbmFsIG9waW5pb24gaXMgdGhh dCBkZXNjcmlwdGl2ZSBtZXRob2QgbmFtZXMgd291bGQgYmUgcHJlZmVyYWJsZSB0byBgKy8tYDoN Cg0KPiBJTUhPIGAuLWAgYW5kIGAuK2AgaXMgbm90IHZlcnkgZWxlZ2FudC4gUHJvcGVyIG1ldGhv ZCBuYW1lcyBleHBsYWluaW5nIHRoZSBpbnRlbnQgd291bGQgYmUgcHJlZmVyYWJsZS4NCj4gDQo+ ICAgLSBgLUBgIGNvdWxkIGJlIGBkZWR1cGAsIG9yIGBkZWR1cGxpY2F0ZWAuDQo+ICAgLSBgK0Bg IGNvdWxkIGJlIGBtdXRhYmxlYCBvciBgbXV0YC4NCg0KDQoNCg0KDQotLSANCmh0dHBzOi8vYnVn cy5ydWJ5LWxhbmcub3JnLw0KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0 QHJ1YnktbGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxh bmcub3JnL2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K