[ruby-core:93383] [Ruby trunk Feature#15865] `<expr> in <pattern>` expression

From: pvande@...
Date: 2019-06-27 06:23:51 UTC
List: ruby-core #93383
SXNzdWUgIzE1ODY1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgcHZhbmRlIChQaWV0ZXIgdmFuIGRlIEJy
dWdnZW4pLg0KDQoNCm1hbWUgKFl1c3VrZSBFbmRvaCkgd3JvdGU6DQo+IEknZCBsaWtlIHRvIGF2
b2lkIHRvIGRpc2N1c3MgYSBjb21tb24gdG9waWMgYmV0d2VlbiBvbmUtbGluZSBhbmQgYGNhc2Uv
aW5gIGluIHRoaXMgcGFydGljdWxhciB0aWNrZXQuDQoNCkFncmVlZDsgdGhlIGdpc3QgZGlzY3Vz
c2VzIHRoZSBlbnRpcmV0eSBvZiB0aGUgZmVhdHVyZS1zcGFjZSwgYnV0IHRoZSBjb252ZXJzYXRp
b24gaW4gdGhpcyB0aWNrZXQgc2hvdWxkIGJlIGNvbnN0cmFpbmVkIHRvIGp1c3QgdGhlIG9uZS1s
aW5lIHBhdHRlcm4gbWF0Y2hpbmcgcHJvcG9zYWwuDQoNCj4gWW91IGhhdmUgdGhyZWUgcG9pbnRz
Lg0KPiANCj4gMS4gTWF0Y2hpbmcgaXMgbm90IHN0cmljdC4NCj4gMi4gVGhlIHByb3Bvc2VkIDxt
YXRjaC1vcD4gaXMgYGluYC4NCj4gMy4gVGhlIHBhdHRlcm4gaXMgb24gdGhlIFJIUy4NCj4gDQo+
IFRoZSBkZXNpZ24gY2hvaWNlIG9mICgxKSBpcyBkb25lIGluIGBjYXNlL2luYCBzdGF0ZW1lbnQu
ICBUaGUgb25lLWxpbmUgdmVyc2lvbiBhbmQgYGNhc2UvaW5gIHNob3VsZCBzaGFyZSB0aGUgc2Vt
YW50aWNzIG9mIGVhY2ggcGF0dGVybi4gIEl0IGlzIHVuYXJndWFibHkgdG9vIGNvbmZ1c2luZyBp
ZiB0aGV5IGhhdmUgZGlmZmVyZW50IHNlbWFudGljcy4gIFNvLCBJIGxpa2Ugbm90IHRvIGRpc2N1
c3MgdGhpcyBpc3N1ZSBpbiB0aGlzIHRpY2tldC4NCg0KQWdyZWVkLiAgSSB3b3VsZCBleHBlY3Qg
dGhlIHNlbWFudGljcyB0byBtYXRjaCwgZWl0aGVyIHdheS4NCg0KPiBTbywgeW91IGhhdmUgdHdv
IGNvbmNlcm5zIGZvciBteSBwcm9wb3NhbCBhYm91dCBvbmUtbGluZSBwYXR0ZXJuIG1hdGNoaW5n
IHN5bnRheDogKDIpIHRoZSBrZXl3b3JkIGBpbmAgYW5kICgzKSB0aGUgd29yZCBvcmRlci4gIEkg
dW5kZXJzdGFuZCB0aGF0IGl0IGlzIHVubmF0dXJhbCBpbiBFbmdsaXNoLiAgKEhvbmVzdGx5LCBp
dCBpcyBtYXRoZW1hdGljYWxseS9sb2dpY2FsbHkgY29ycmVjdCBhcyB5b3Ugc2FpZCwgc28gaXQg
d29ya3MgZm9yIG1lLCBhIG5vbi1uYXRpdmUsIHRob3VnaC4pIA0KDQpUaGUgVHdpdHRlciBwb3N0
IGZyb20ga28xIHRoYXQgSSB3YXMgcmVzcG9uZGluZyB0byB3YXMgc3BlY2lmaWNhbGx5IHNvbGlj
aXRpbmcgZmVlZGJhY2sgYWJvdXQgdGhlIHN5bnRheDoNCg0KRnJvbSBodHRwczovL3R3aXR0ZXIu
Y29tL19rbzEvc3RhdHVzLzExMzU3ODg4NDQ5MTYxOTUzMjk6DQo+IFdlIHdhbnQgdG8gYXNrIEVu
Z2xpc2ggc3BlYWtlciBhYm91dCB0aGlzIHByb3Bvc2FsLiBEbyB5b3UgZmVlbCBuYXR1cmFsIG9u
IHRoaXMgc3ludGF4Pw0KDQpUbyBiZSBjbGVhciDigJMgSSBkbyBub3QuICBJJ20gaGFwcHkgdG8g
ZWxhYm9yYXRlIG9uIGV4YWN0bHkgKndoeSogbm90LCBidXQg4oCTIGFzIHlvdSBwb2ludCBvdXQg
4oCTwqBteSBvYmplY3Rpb25zIGFyZSBub3QgcHJpbmNpcGFsbHkgdG8gdGhlIGlubGluZSBzeW50
YXguDQoNCj4gSG93ZXZlciwgSSBiZWxpZXZlIHRoYXQgdGhpcyBpcyB0aGUgYmVzdCBjaG9pY2Ug
Zm9yIHNvbWUgcmVhc29uczoNCj4NCj4gKiBUaGUgYXBwZWFyYW5jZSBvZiBgY2FzZS9pbmAgc3Rh
dGVtZW50IGlzIGBjYXNlIDxleHByPjsgaW4gPHBhdHRlcm4+OyAuLi4gZW5kYC4gIEluIGEgc2Vu
c2UsIHRoZSBrZXl3b3JkIGBpbmAgYW5kIHRoZSBvcmRlciB0aGF0IGA8cGF0dGVybj5gIGZvbGxv
d3MgdGhlIGtleXdvcmQgYGluYCBhcmUgYWxyZWFkeSBlc3RhYmxpc2hlZCwgYXMgbG9uZyBhcyB3
ZSBhY2NlcHQgYGNhc2UvaW5gIHN0YXRlbWVudC4NCg0KSSBhZ3JlZSwgYW5kIEkgaGF2ZSBwb3N0
ZWQgdGhlIHNhbWUgZ2lzdCBpbiB0aGUgb3RoZXIgdGlja2V0IChhcyB5b3Ugc3VnZ2VzdGVkKSBp
biB0aGUgaG9wZXMgb2Ygc3Bhcmtpbmcgc2ltaWxhciBkaXNjdXNzaW9uIHRoZXJlLg0KDQo+ICog
VGhlIG9yZGVyIGA8cGF0dGVybj4gPG1hdGNoLW9wPiA8ZXhwcj5gIGlzIHZlcnkgZGlmZmljdWx0
IChvciBtYXliZSBpbXBvc3NpYmxlPykgdG8gaW1wbGVtZW50IHBhcnNpbmcgcnVsZXMuICBQZXJo
YXBzIHdlIG5lZWQgdG8gdXNlIGA8cGF0dGVybi1tYXJrZXI+IDxwYXR0ZXJuPiA8bWF0Y2gtb3A+
IDxleHByPmAsIGJ1dCBpdCBpcyB2ZXJ5IHRvdWdoIHRvIGFncmVlIHdpdGggc3ltYm9sIG9yIGtl
eXdvcmQgb2YgYDxwYXR0ZXJuLW1hcmtlcj5gIGFuZCBgPG1hdGNoLW9wPmAuDQoNCkkgY2FuJ3Qg
c3BlYWsgZGlyZWN0bHkgdG8gdGhlIHBhcnNpbmcgZGlmZmljdWx0eS4gIEZyb20gdGhlIG91dHNp
ZGUsIGl0ICpsb29rcyogbGlrZSBhIGNvbWJpbmF0aW9uIG9mIGRlc3RydWN0dXJpbmcgYXNzaWdu
bWVudCAod2hpY2ggZGVhbHMgd2l0aCBtdWx0aXBsZSBMSFMgYXJndW1lbnRzKSwgQXJyYXkgYW5k
IEhhc2ggbGl0ZXJhbHMsIGFuZCBtZXRob2QgYXJndW1lbnRzIChlLmcuIHJlcXVpcmVkIEhhc2gg
a2V5cywga2V5d29yZCBzcGxhdHMpLiAgVGhlIHByaW1hcnkgZGlmZmljdWx0eSwgdGhlbiwgd291
bGQgc2VlbSB0byBjb21lIGZyb20gbm90IGtub3dpbmcgKGUuZy4pIGlmIHRoZSBtYWxmb3JtZWQg
SGFzaCB5b3UganVzdCBwYXJzZWQgd2FzIGEgKnBhdHRlcm4qIG9yIGEgKnN5bnRheCBlcnJvciog
dW50aWwgeW91IGtub3cgd2hldGhlciBvciBub3QgaXQncyBmb2xsb3dlZCBieSBgPG1hdGNoLW9w
PmAuDQogDQo+IFlvdSBjYW4gZGlzY3VzcyB0aGUgZ3JhbmQgZGVzaWduIG9mIHBhdHRlcm4gbWF0
Y2hpbmcgYW5kIHRoZSBzeW50YXggb2YgYGNhc2UvaW5gIHN0YXRlbWVudCBpbiAjMTQ5MTIuICBJ
ZiB0aGUgZ3JhbmQgZGVzaWduIGlzIG92ZXJ0dXJuZWQsIG15IHByb3Bvc2FsIHdpbGwgbmVlZCB0
byBjaGFuZ2UgZHJhc3RpY2FsbHkuICAoQnV0IGluIHNob3J0LCBJIHJlc3BlY3QgdGhlIGRlc2ln
biBkZWNpc2lvbi4gIEknbSBub3QgZnVsbHkgc2F0aXNmaWVkIHdpdGggdGhlIHN5bnRheCwgYnV0
IHdlIHNwZW50IHZlcnkgbG9uZyB0aW1lIHRvIGRpc2N1c3Mgd2hhdCBrZXl3b3JkIGlzIHN1aXRh
YmxlIGFuZCBmZWFzaWJsZSwgYW5kIGZpbmFsbHkgY2hvc2UgdGhlIGRlc2lnbiBpbmNsdWRpbmcg
dGhlIGtleXdvcmQgYGluYC4pDQoNCk9uY2UgYWdhaW4sIEkgYWdyZWUuICBJdCBpcyBjb3JyZWN0
IGZvciB0aGlzIHN5bnRheCB0byBtaXJyb3IgdGhlIGJsb2NrIGZvcm0sIGFuZCBJIGhhdmUgbm90
IHRyaWVkIHRvIGltcGx5IG90aGVyd2lzZS4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KRmVhdHVyZSAjMTU4NjU6IGA8ZXhwcj4gaW4gPHBhdHRlcm4+YCBleHBy
ZXNzaW9uDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTU4NjUjY2hhbmdlLTc4
OTA2DQoNCiogQXV0aG9yOiBtYW1lIChZdXN1a2UgRW5kb2gpDQoqIFN0YXR1czogT3Blbg0KKiBQ
cmlvcml0eTogTm9ybWFsDQoqIEFzc2lnbmVlOiBtYXR6IChZdWtpaGlybyBNYXRzdW1vdG8pDQoq
IFRhcmdldCB2ZXJzaW9uOiANCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCkhvdyBhYm91dCBhZGRpbmcgYSBzeW50YXggZm9yIG9uZS1saW5lIHBhdHRlcm4gbWF0Y2hp
bmc6IGA8ZXhwcj4gaW4gPHBhdHRlcm4+YCA/DQoNCmBgYA0KWzEsIDIsIDNdIGluIHgsIHksIHog
Iz0+IHRydWUgKHdpdGggYXNzaWduaW5nIDEgdG8geCwgMiB0byB5LCBhbmQgMyB0byB6KQ0KWzEs
IDIsIDNdIGluIDEsIDIsIDQgIz0+IGZhbHNlDQpgYGANCg0KTW9yZSByZWFsaXN0aWMgZXhhbXBs
ZToNCg0KYGBgDQpqc29uID0gew0KICBuYW1lOiAia28xIiwNCiAgYWdlOiAzOSwNCiAgYWRkcmVz
czogeyBwb3N0YWw6IDEyMywgY2l0eTogIlRhaXRvLWt1IiB9DQp9DQoNCmlmIGpzb24gaW4geyBu
YW1lOiwgYWdlOiAoMjAuLiksIGFkZHJlc3M6IHsgY2l0eTogIlRhaXRvLWt1IiB9IH0NCiAgcCBu
YW1lICM9PiAia28xIg0KZWxzZQ0KICByYWlzZSAid3JvbmcgZm9ybWF0Ig0KZW5kDQpgYGANCg0K
SXQgaXMgc2ltcGxlciBhbmQgbW9yZSBjb21wb3NhYmxlIHRoYW4gImNhc2UuLi5pbiIgd2hlbiBv
bmx5IG9uZSAiaW4iIGNsYXVzZSBpcyBuZWVkZWQuICBJIHRoaW5rIHRoYXQgaW4gUnVieSBhIHBh
dHRlcm4gbWF0Y2hpbmcgd291bGQgYmUgb2Z0ZW4gdXNlZCBmb3IgImZvcm1hdC1jaGVja2luZyIs
IHRvIGNoZWNrIGEgc3RydWN0dXJlIG9mIGRhdGEsIGFuZCB0aGlzIHVzZSBjYXNlIHdvdWxkIHVz
dWFsbHkgcmVxdWlyZSBvbmx5IG9uZSBjbGF1c2UuICBUaGlzIGlzIHRoZSBtYWluIHJhdGlvbmFs
ZSBmb3IgdGhlIHN5bnRheCBJIHByb3Bvc2UuDQoNCkFkZGl0aW9uYWwgdHdvIHNtYWxsIHJhdGlv
bmFsZXM6DQoNCiogSXQgbWF5IGJlIHVzZWQgYXMgYSBraW5kIG9mICJyaWdodCBhc3NpZ25tZW50
IjogYDEgKyAxIGluIHhgIGJlaGF2ZXMgbGlrZSBgeCA9IDEgKyAxYC4gIEl0IHJldHVybnMgdHJ1
ZSBpbnN0ZWFkIG9mIDIsIHRob3VnaC4NCiogVGhlcmUgYXJlIHNvbWUgYXJndW1lbnRzIGFib3V0
IHRoZSBzeW50YXggImNhc2UuLi5pbiIuICBCdXQgaWYgd2UgaGF2ZSBgPGV4cHI+IGluIDxwYXR0
ZXJuPmAsICJjYXNlLi4uaW4iIGNhbiBiZSBjb25zaWRlcmVkIGFzIGEgc3ludGFjdGljIHN1Z2Fy
IHRoYXQgaXMgdXNlZnVsIGZvciBtdWx0aXBsZS1jbGF1c2UgY2FzZXMsIGFuZCBsb29rcyBtb3Jl
IG5hdHVyYWwgdG8gbWUuDQoNClRoZXJlIGFyZSB0d28gcG9pbnRzIEkgc2hvdWxkIG5vdGU6DQoN
CiogYDxleHByPiBpbiA8cGF0dGVybj5gIGlzIGFuIGV4cHJlc3Npb24gbGlrZSBgPGV4cHI+IGFu
ZCA8ZXhwcj5gLCBzbyB3ZSBjYW5ub3Qgd3JpdGUgaXQgYXMgYW4gYXJndW1lbnQ6IGBmb28oMSBp
biAxKWAgY2F1c2VzIFN5bnRheEVycm9yLiAgWW91IG5lZWQgdG8gd3JpdGUgYGZvbygoMSBpbiAx
KSlgIGFzIGxpa2UgYGZvbygoMSBhbmQgMSkpYC4gIEkgdGhpbmsgaXQgaXMgaW1wb3NzaWJsZSB0
byBpbXBsZW1lbnQuDQoqIEluY29tcGxldGUgcGF0dGVybiBtYXRjaGluZyBhbHNvIHJld3JpdGVz
IHZhcmlhYmxlczogYFsxLCAyLCAzXSBpbiB4LCA0MiwgemAgd2lsbCB3cml0ZSAxIHRvIHRoZSB2
YXJpYWJsZSAieCIuICBUaGlzIGJlaGF2aW9yIGlzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50ICJj
YXNlLi4uaW4iLg0KDQpOb2J1IHdyb3RlIGEgcGF0Y2g6IGh0dHBzOi8vZ2l0aHViLmNvbS9ub2J1
L3J1YnkvcHVsbC9uZXcvZmVhdHVyZS9leHByLWluLXBhdHRlcm4NCg0KDQoNCi0tIA0KaHR0cHM6
Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJl
cXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1
YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=

In This Thread

Prev Next