[ruby-core:98341] [Ruby master Feature#16822] Array slicing: nils and edge cases
From:
matz@...
Date:
2020-05-14 04:52:31 UTC
List:
ruby-core #98341
SXNzdWUgIzE2ODIyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWF0eiAoWXVraWhpcm8gTWF0c3Vtb3Rv KS4NCg0KDQpJIGRvbid0IHRoaW5rIHRoZSBiZW5lZml0IG9mIGNoYW5naW5nIG91dHdlaWdocyB0 aGUgcGFpbiBvZiBpbmNvbXBhdGliaWxpdHkuIFJlamVjdGVkLg0KDQpNYXR6Lg0KDQoNCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzE2ODIyOiBBcnJh eSBzbGljaW5nOiBuaWxzIGFuZCBlZGdlIGNhc2VzDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9y Zy9pc3N1ZXMvMTY4MjIjY2hhbmdlLTg1NjA4DQoNCiogQXV0aG9yOiB6dmVyb2sgKFZpY3RvciBT aGVwZWxldikNCiogU3RhdHVzOiBPcGVuDQoqIFByaW9yaXR5OiBOb3JtYWwNCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCihGaXJzdCBvZiBhbGwsIEkgdW5kZXJzdGFu ZCB0aGF0IHRoZSBwcm9wb3NlZCBjaGFuZ2UgY2FuIGJyZWFrIGNvZGUsIGJ1dCBJIGV4cGVjdCBp dCBub3QgdG8gYmUgYSBsYXJnZSBhbW91bnQgZW1waXJpY2FsbHkuKQ0KDQpJIHByb3Bvc2UgdGhh dCBtZXRob2RzIHRoYXQgc2xpY2UgYW4gYXJyYXkgKGAjc2xpY2VgIGFuZCBgI1tdYCkgYW5kIHJl dHVybiBhIHN1Yi1hcnJheSBpbiB0aGUgbm9ybWFsIGNhc2UsIHNob3VsZCAqKm5ldmVyKiogcmV0 dXJuIGBuaWxgLiBFLmcuLA0KDQpgYGBydWJ5DQphcnkgPSBbMSwgMiwgM10NCmBgYA0KDQoqIDEu IE5vbi1lbXB0eSBzbGljZS0taG93IGl0IHdvcmtzIGN1cnJlbnRseQ0KDQpgYGBydWJ5DQphWzEu LjJdICMgPT4gWzIsIDNdDQphWzEuLi4tMV0gIyA9PiBbMl0NCmBgYA0KDQoqIDIuIEVtcHR5IHNs aWNlLS1ob3cgaXQgd29ya3MgY3VycmVudGx5DQoNCmBgYHJ1YnkNCmFbMS4uLjFdICMgPT4gW10N CmFbMy4uLl0gIyA9PiBbXQ0KYVstMS4uLTJdICMgPT4gW10gDQpgYGANCg0KKiAzLiBTdWRkZW4g YG5pbGDigJQqKndoYXQgSSBhbSBwcm9wb3NpbmcgdG8gY2hhbmdlKioNCg0KYGBgcnVieQ0KYVs0 Li5dICMgPT4gbmlsIA0KYVstMTAuLi05XSAjID0+IG5pbCANCmBgYA0KDQpJIGJlbGlldmUgdGhh dCBpdCB3b3VsZCBiZSBiZXR0ZXIgYmVjYXVzZSB0aGUgbWV0aG9kIHdvdWxkIGhhdmUgY2xlYW5l ciAidHlwZSBkZWZpbml0aW9uIiAoSWYgdGhlcmUgaXMgbm90aGluZyBpbiB0aGUgYXJyYXkgYXQg dGhlIHJlcXVlc3RlZCBhZGRyZXNzLCB5b3UnbGwgaGF2ZSBhbiBlbXB0eSBhcnJheSkuDQoNCk1v c3Qgb2YgdGhlIHRpbWUsIHRoZSBlbXB0eSBhcnJheSBkb2Vzbid0IHJlcXVpcmUgYW55IHNwZWNp YWwgaGFuZGxpbmc7IHRodXMsIGBhcnlbc3RhcnQuLi5lbmRdLm1hcCB7IC4uLiB9YCB3aWxsIGJl aGF2ZSBhcyBleHBlY3RlZCBpZiB0aGUgcmVxdWVzdGVkIHJhbmdlIGlzIG91dHNpZGUgb2YgdGhl IGFycmF5IGJvdW5kYXJ5Lg0KDQpJdCBpcyBlc3BlY2lhbGx5IHBhaW5mdWwgd2l0aCBvZmYtYnkt b25lIGVycm9yczsgZm9yIGFuIGFycmF5IG9mIHRocmVlIGVsZW1lbnRzLCBpZiBgYXJ5WzMuLi5d YCAoanVzdCBvdXRzaWRlIHRoZSBib3VuZGFyeSkgaXMgYFtdYCB3aGlsZSBgYVs0Li4uXWAgKG9u ZSBtb3JlIHN0ZXAgb3V0c2lkZSkgaXMgYG5pbGAsIGl0IHR5cGljYWxseSByZXN1bHRzIGluIHNv bWUgbmFzdHkgYE5vTWV0aG9kRXJyb3IgZm9yIE5pbENsYXNzYC4NCg0KQSBzaW1pbGFyIGV4YW1w bGUgaXMgYGFyeVsxLi5dLnJlZHVjZSB7IH1gIChldmVyeXRoaW5nIGV4Y2VwdCB0aGUgZmlyc3Qg ZWxlbWVudC0tcHJvYmFibHkgdGhlIGZpcnN0IGVsZW1lbnQgd2FzIHVzZWQgdG8gY29uc3RydWN0 IHRoZSBpbml0aWFsIHZhbHVlIGZvciByZWR1Y2luZykgd2l0aCBgYXJ5YCBiZWluZyBub24tZW1w dHkgOTkuOSUgb2YgdGhlIHRpbWVzLiBUaGVuIHlvdSBtZWV0IG9uZSBvZiB0aGUgMC4xJSBjYXNl cywgYW5kIGluc3RlYWQgb2Ygbm8tb3AgcmVkdWNpbmcgbm90aGluZywgYE5vTWV0aG9kRXJyb3Jg IGlzIGZpcmVkLg0KDQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCgpVbnN1 YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9 dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4v b3B0aW9ucy9ydWJ5LWNvcmU+Cg==