[ruby-core:93029] [Ruby trunk Feature#14912] Introduce pattern matching syntax

From: mame@...
Date: 2019-06-09 00:43:25 UTC
List: ruby-core #93029
SXNzdWUgIzE0OTEyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWFtZSAoWXVzdWtlIEVuZG9oKS4NCg0K
DQpAcGl0ci5jaA0KUGxlYXNlIGJyaWVmbHkgc3VtbWFyaXplIHlvdXIgcHJvcG9zYWwgZmlyc3Qu
ICBVc2UgY2FzZSBpcyBpbXBvcnRhbnQsIGJ1dCBleHBsYWluaW5nIGEgcHJvcG9zYWwgYnkgdXNl
IGNhc2UgaXMgZGlmZmljdWx0IHRvIHJlYWQgKHVubGVzcyB0aGUgdXNlIGNhc2UgaXMgcmVhbGx5
IHNpbXBsZSkuDQoNCkknbSB1bnN1cmUgYnV0IEkgZ3Vlc3MgeW91ciBwcm9wb3NhbDoNCg0KMSkg
QWRkIGEgc3ludGFjdGljIHN1Z2FyOiBgY2FzZSBpbiA8cGF0dGVybj47IDxleHByPjsgLi4uOyBl
bmRgIOKGkiBgLT4geCB7IGNhc2UgeCBpbiA8cGF0dGVybj47IDxleHByPjsgLi4uOyBlbmQgfWAN
CjIpIEFsbG93IGhhc2ggcm9ja2V0IHBhdHRlcm46IGB7IDxwYXR0ZXJuPiA9PiA8cGF0dGVybj4g
fWANCjMpIEFkZCBhIHN5bnRhY3RpYyBzdWdhcjogYGluIDxwYXR0ZXJuPiB7IDxleHByPiB9YCDi
hpIgYC0+IHggeyBjYXNlIHggaW4gPHBhdHRlcm4+OyA8ZXhwcj47IGVuZCB9YA0KDQpUaGUgZm9s
bG93aW5nIGlzIG15IG9waW5pb24uDQoNCg0KSSBkb24ndCBsaWtlICgxKS4gIEl0IHdvdWxkIGJl
IG1vcmUgcmVhZGFibGUgdG8gd3JpdGUgaXQgZXhwbGljaXRseToNCg0KYGBgDQpkYXRhLnBvcF9h
bGwgZG8gfGVudHJ5fA0KICBjYXNlIGVudHJ5DQogIGluIFsiZmF0YWwiLCBtZXNzYWdlXQ0KICAg
IGRlYWxfd2l0aF9mYXRhbCBtZXNzYWdlDQogIGluIFsiZXJyb3IiLCBtZXNzYWdlXQ0KICAgIGRl
YWxfd2l0aF9lcnJvciBtZXNzYWdlDQogIGVuZA0KZW5kDQpgYGANCg0KDQpXZSBuZWVkIHRvIGJl
IGNhcmVmdWwgYWJvdXQgKDIpLiAgSWYgYD0+YCBwYXR0ZXJuIGlzIGFsbG93ZWQsIHdlIGNhbiB3
cml0ZSBhIHZhcmlhYmxlIGFzIGEga2V5LCBidXQgaXQgYnJpbmdzIGFtYmlndWl0eS4NCg0KYGBg
DQpoID0geyAiZm9vIiA9PiAxLCAiYmFyIiA9PiAxIH0NCg0KY2FzZSBoDQppbiB7IHggPT4gMSB9
DQogIHAgeCAjPT4gImZvbyI/ICJiYXIiPw0KZW5kDQpgYGANCg0KSSB0aGluayB0aGUgY3VycmVu
dCBkZXNpZ24gKGFsbG93aW5nIG9ubHkgc3ltYm9sIGtleXMpIGlzIHJlYXNvbmFibGUuDQoNCg0K
KDMpIHdpbGwgaW50cm9kdWNlIHN5bnRhY3RpYyBhbWJpZ3VpdHkuICBDb25zaWRlciB0aGUgZm9s
bG93aW5nIGV4YW1wbGUuDQoNCmBgYA0KY2FzZSB4DQppbiAxDQogIHt9DQppbiAyDQogIHt9ICAj
IElzIHRoaXMgdGhlIHNlY29uZCBwYXR0ZXJuPyAgT3IgaXMgdGhpcyBhIGxhbWJkYT8gIA0KZW5k
DQpgYGANCg0KSXQgbG9va3MgbGlrZSB0aGlzIGNhc2Ugc3RhdGVtZW50IGhhcyB0d28gY2xhdXNl
cywgYnV0IGBpbiAyIHt9YCAoYSBsYW1iZGEgZXhwcmVzc2lvbiB5b3UgcHJvcG9zZSkgY2FuIGJl
IGFsc28gcGFyc2VkLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
DQpGZWF0dXJlICMxNDkxMjogSW50cm9kdWNlIHBhdHRlcm4gbWF0Y2hpbmcgc3ludGF4DQpodHRw
czovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTQ5MTIjY2hhbmdlLTc4NDAzDQoNCiogQXV0
aG9yOiBrdHNqIChLYXp1a2kgVHN1amltb3RvKQ0KKiBTdGF0dXM6IEFzc2lnbmVkDQoqIFByaW9y
aXR5OiBOb3JtYWwNCiogQXNzaWduZWU6IGt0c2ogKEthenVraSBUc3VqaW1vdG8pDQoqIFRhcmdl
dCB2ZXJzaW9uOiAyLjcNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N
CkkgcHJvcG9zZSBuZXcgcGF0dGVybiBtYXRjaGluZyBzeW50YXguDQoNCiMgUGF0dGVybiBzeW50
YXgNCkhlcmUncyBhIHN1bW1hcnkgb2YgcGF0dGVybiBzeW50YXguDQoNCmBgYA0KIyBjYXNlIHZl
cnNpb24NCmNhc2UgZXhwcg0KaW4gcGF0IFtpZnx1bmxlc3MgY29uZF0NCiAgLi4uDQppbiBwYXQg
W2lmfHVubGVzcyBjb25kXQ0KICAuLi4NCmVsc2UNCiAgLi4uDQplbmQNCg0KcGF0OiB2YXIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFZhcmlhYmxl
IHBhdHRlcm4uIEl0IG1hdGNoZXMgYW55IHZhbHVlLCBhbmQgYmluZHMgdGhlIHZhcmlhYmxlIG5h
bWUgdG8gdGhhdCB2YWx1ZS4NCiAgIHwgbGl0ZXJhbCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIyBWYWx1ZSBwYXR0ZXJuLiBUaGUgcGF0dGVybiBtYXRjaGVz
IGFuIG9iamVjdCBzdWNoIHRoYXQgcGF0dGVybiA9PT0gb2JqZWN0Lg0KICAgfCBDb25zdGFudCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIERpdHRvLg0KICAg
fCB2YXJfICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj
IERpdHRvLiBJdCBpcyBlcXVpdmFsZW50IHRvIHBpbiBvcGVyYXRvciBpbiBFbGl4aXIuDQogICB8
IChwYXQsIC4uLiwgKnZhciwgcGF0LCAuLi4sIGlkOiwgaWQ6IHBhdCwgLi4uLCAqKnZhcikgICMg
RGVjb25zdHJ1Y3RpbmcgcGF0dGVybi4gU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuDQogICB8
IHBhdChwYXQsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg
RGl0dG8uIFN5bnRhY3RpYyBzdWdhciBvZiAocGF0LCBwYXQsIC4uLikuDQogICB8IHBhdCwgLi4u
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRGl0dG8uIFlv
dSBjYW4gb21pdCB0aGUgcGFyZW50aGVzaXMgKHRvcC1sZXZlbCBvbmx5KS4gDQogICB8IHBhdCB8
IHBhdCB8IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQWx0ZXJu
YXRpdmUgcGF0dGVybi4gVGhlIHBhdHRlcm4gbWF0Y2hlcyBpZiBhbnkgb2YgcGF0cyBtYXRjaC4N
CiAgIHwgcGF0ID0+IHZhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIyBBcyBwYXR0ZXJuLiBCaW5kIHRoZSB2YXJpYWJsZSB0byB0aGUgdmFsdWUgaWYgcGF0IG1h
dGNoLg0KDQojIG9uZS1saW5lciB2ZXJzaW9uDQokKHBhdCwgLi4uKSA9IGV4cHIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRGVjb25zdHJ1Y3RpbmcgcGF0dGVybi4N
CmBgYA0KDQpUaGUgcGF0dGVybnMgYXJlIHJ1biBpbiBzZXF1ZW5jZSB1bnRpbCB0aGUgZmlyc3Qg
b25lIHRoYXQgbWF0Y2hlcy4NCklmIG5vIHBhdHRlcm4gbWF0Y2hlcyBhbmQgbm8gZWxzZSBjbGF1
c2UsIE5vTWF0Y2hpbmdQYXR0ZXJuRXJyb3IgZXhjZXB0aW9uIGlzIHJhaXNlZC4NCg0KIyMgRGVj
b25zdHJ1Y3RpbmcgcGF0dGVybg0KVGhpcyBpcyBzaW1pbGFyIHRvIEV4dHJhY3RvciBpbiBTY2Fs
YS4NCg0KVGhlIHBhdHRlbiBtYXRjaGVzIGlmOg0KDQoqIEFuIG9iamVjdCBoYXZlICNkZWNvbnN0
cnVjdCBtZXRob2QNCiogUmV0dXJuIHZhbHVlIG9mICNkZWNvbnN0cnVjdCBtZXRob2QgbXVzdCBi
ZSBBcnJheSBvciBIYXNoLCBhbmQgaXQgbWF0Y2hlcyBzdWIgcGF0dGVybnMgb2YgdGhpcw0KDQpg
YGANCmNsYXNzIEFycmF5DQogIGFsaWFzIGRlY29uc3RydWN0IGl0c2VsZg0KZW5kDQoNCmNhc2Ug
WzEsIDIsIDMsIGQ6IDQsIGU6IDUsIGY6IDZdDQppbiBhLCAqYiwgYywgZDosIGU6IEludGVnZXIg
fCBGbG9hdCA9PiBpLCAqKmYNCiAgcCBhICM9PiAxDQogIHAgYiAjPT4gWzJdDQogIHAgYyAjPT4g
Mw0KICBwIGQgIz0+IDQNCiAgcCBpICM9PiA1DQogIHAgZiAjPT4ge2Y6IDZ9DQogIGUgICAjPT4g
TmFtZUVycm9yDQplbmQNCmBgYA0KDQpUaGlzIHBhdHRlcm4gY2FuIGJlIHVzZWQgYXMgb25lLWxp
bmVyIHZlcnNpb24gbGlrZSBkZXN0cnVjdHVyaW5nIGFzc2lnbm1lbnQuDQoNCmBgYA0KY2xhc3Mg
SGFzaA0KICBhbGlhcyBkZWNvbnN0cnVjdCBpdHNlbGYNCmVuZA0KDQokKHg6LCB5OiAoXywgeikp
ID0ge3g6IDAsIHk6IFsxLCAyXX0NCnAgeCAjPT4gMA0KcCB6ICM9PiAyDQpgYGANCg0KIyBTYW1w
bGUgY29kZQ0KYGBgDQpjbGFzcyBTdHJ1Y3QNCiAgZGVmIGRlY29uc3RydWN0OyBbc2VsZl0gKyB2
YWx1ZXM7IGVuZA0KZW5kDQoNCkEgPSBTdHJ1Y3QubmV3KDphLCA6YikNCmNhc2UgQVswLCAxXQ0K
aW4gKEEsIDEsIDEpDQogIDpub3RfbWF0Y2gNCmluIEEoeCwgMSkgIyBTeW50YWN0aWMgc3VnYXIg
b2YgYWJvdmUNCiAgcCB4ICM9PiAwDQplbmQNCmBgYA0KDQpgYGANCnJlcXVpcmUgJ2pzb24nDQoN
CiQoeDosIHk6IChfLCB6KSkgPSBKU09OLnBhcnNlKCd7IngiOiAwLCAieSI6IFsxLCAyXX0nLCBz
eW1ib2xpemVfbmFtZXM6IHRydWUpDQpwIHggIz0+IDANCnAgeiAjPT4gMg0KYGBgDQoNCiMgSW1w
bGVtZW50YXRpb24NCiogaHR0cHM6Ly9naXRodWIuY29tL2stdHNqL3J1YnkvdHJlZS9wbTIuNy1w
cm90b3R5cGUNCiAgICogVGVzdCBjb2RlOiBodHRwczovL2dpdGh1Yi5jb20vay10c2ovcnVieS9i
bG9iL3BtMi43LXByb3RvdHlwZS90ZXN0X3N5bnRheC5yYg0KDQojIERlc2lnbiBwb2xpY3kNCiog
S2VlcCBjb21wYXRpYmlsaXR5DQogICAqIERvbid0IGRlZmluZSBuZXcgcmVzZXJ2ZWQgd29yZHMN
CiAgICogMCBjb25mbGljdCBpbiBwYXJzZS55LiBJdCBwYXNzZXMgdGVzdC90ZXN0LWFsbA0KKiBC
ZSBSdWJ5LWlzaA0KICAgKiBQb3dlcmZ1bCBBcnJheSwgSGFzaCBzdXBwb3J0DQogICAqIEVuY291
cmFnZSBkdWNrIHR5cGluZyBzdHlsZQ0KICAgKiBldGMNCiogT3B0aW1pemUgc3ludGF4IGZvciBt
YWpvciB1c2UgY2FzZQ0KICAgKiBZb3UgY2FuIHNlZSBzZXZlcmFsIHJlYWwgdXNlIGNhc2VzIG9m
IHBhdHRlcm4gbWF0Y2hpbmcgYXQgZm9sbG93aW5nIGxpbmtzIDopDQogICAgICAqIGh0dHBzOi8v
Z2l0aHViLmNvbS9rLXRzai9wb3dlcl9hc3NlcnQvYmxvYi84ZTllMDM5OWEwMzI5MzZlM2UzZjNj
MWYwNmUwZDAzODU2NWY4MDQ0L2xpYi9wb3dlcl9hc3NlcnQucmIjTDEwNg0KICAgICAgKiBodHRw
czovL2dpdGh1Yi5jb20vay10c2ovcGF0dGVybi1tYXRjaC9uZXR3b3JrL2RlcGVuZGVudHMNCg0K
DQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCgpVbnN1YnNjcmliZTogPG1h
aWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+
CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5
LWNvcmU+Cg==

In This Thread

Prev Next