[ruby-core:98140] [Ruby master Feature#16822] Array slicing: nils and edge cases
From:
ruby-core@...
Date:
2020-05-05 20:23:39 UTC
List:
ruby-core #98140
SXNzdWUgIzE2ODIyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWFyY2FuZHJlIChNYXJjLUFuZHJlIExh Zm9ydHVuZSkuDQoNCg0KSSdtIHN0cm9uZ2x5IGFnYWluc3QgdGhpcywgZm9yIGNvbXBhdGliaWxp dHkgcmVhc29ucyBhbmQgYmVjYXVzZSBjdXJyZW50IGNob2ljZSBpcyBhIGNvbnNpc3RlbnQgY29u dmVudGlvbi4NCg0KQmVmb3JlIHByb3Bvc2luZyBhbnkgaW5jb21wYXRpYmxlIGNoYW5nZSwgZXNw ZWNpYWxseSBmb3IgYW4gQVBJIHRoYXQgaXMgdmVyeSBtdWNoIGluIHVzZSwgcGxlYXNlIHByb3Zp ZGUgYSBjb21wZWxsaW5nIHVzZSBjYXNlLiBJZiB5b3Ugd3JpdGUgYGFyeVsxLi5dLnJlZHVjZSB7 IH1gLCB5b3UgbXVzdCBnaXZlIGEgY29udGV4dCAod2hhdCBjb250YWlucyBgYXJ5YCwgd2h5IHdv dWxkIHlvdSB3YW50IHRvIHNraXAgdGhlIGZpcnN0IHZhbHVlLCB3aHkgbm90IHVzZSBgdmFsdWVz X2F0KDEuLilgLCBldGMuKS4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KRmVhdHVyZSAjMTY4MjI6IEFycmF5IHNsaWNpbmc6IG5pbHMgYW5kIGVkZ2UgY2FzZXMN Cmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNjgyMiNjaGFuZ2UtODUzODINCg0K KiBBdXRob3I6IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2KQ0KKiBTdGF0dXM6IE9wZW4NCiogUHJp b3JpdHk6IE5vcm1hbA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K KEZpcnN0IG9mIGFsbCwgSSB1bmRlcnN0YW5kIHRoYXQgdGhlIHByb3Bvc2VkIGNoYW5nZSBjYW4g YnJlYWsgY29kZSwgYnV0IEkgZXhwZWN0IGl0IG5vdCB0byBiZSBhIGxhcmdlIGFtb3VudCBlbXBp cmljYWxseS4pDQoNCkkgcHJvcG9zZSB0aGF0IG1ldGhvZHMgdGhhdCBzbGljZSBhbiBhcnJheSAo YCNzbGljZWAgYW5kIGAjW11gKSBhbmQgcmV0dXJuIGEgc3ViLWFycmF5IGluIHRoZSBub3JtYWwg Y2FzZSwgc2hvdWxkICoqbmV2ZXIqKiByZXR1cm4gYG5pbGAuIEUuZy4sDQoNCmBgYHJ1YnkNCmFy eSA9IFsxLCAyLCAzXQ0KYGBgDQoNCiogMS4gTm9uLWVtcHR5IHNsaWNlLS1ob3cgaXQgd29ya3Mg Y3VycmVudGx5DQoNCmBgYHJ1YnkNCmFbMS4uMl0gIyA9PiBbMiwgM10NCmFbMS4uLi0xXSAjID0+ IFsyXQ0KYGBgDQoNCiogMi4gRW1wdHkgc2xpY2UtLWhvdyBpdCB3b3JrcyBjdXJyZW50bHkNCg0K YGBgcnVieQ0KYVsxLi4uMV0gIyA9PiBbXQ0KYVszLi4uXSAjID0+IFtdDQphWy0xLi4tMl0gIyA9 PiBbXSANCmBgYA0KDQoqIDMuIFN1ZGRlbiBgbmlsYOKAlCoqd2hhdCBJIGFtIHByb3Bvc2luZyB0 byBjaGFuZ2UqKg0KDQpgYGBydWJ5DQphWzQuLl0gIyA9PiBuaWwgDQphWy0xMC4uLTldICMgPT4g bmlsIA0KYGBgDQoNCkkgYmVsaWV2ZSB0aGF0IGl0IHdvdWxkIGJlIGJldHRlciBiZWNhdXNlIHRo ZSBtZXRob2Qgd291bGQgaGF2ZSBjbGVhbmVyICJ0eXBlIGRlZmluaXRpb24iIChJZiB0aGVyZSBp cyBub3RoaW5nIGluIHRoZSBhcnJheSBhdCB0aGUgcmVxdWVzdGVkIGFkZHJlc3MsIHlvdSdsbCBo YXZlIGFuIGVtcHR5IGFycmF5KS4NCg0KTW9zdCBvZiB0aGUgdGltZSwgdGhlIGVtcHR5IGFycmF5 IGRvZXNuJ3QgcmVxdWlyZSBhbnkgc3BlY2lhbCBoYW5kbGluZzsgdGh1cywgYGFyeVtzdGFydC4u LmVuZF0ubWFwIHsgLi4uIH1gIHdpbGwgYmVoYXZlIGFzIGV4cGVjdGVkIGlmIHRoZSByZXF1ZXN0 ZWQgcmFuZ2UgaXMgb3V0c2lkZSBvZiB0aGUgYXJyYXkgYm91bmRhcnkuDQoNCkl0IGlzIGVzcGVj aWFsbHkgcGFpbmZ1bCB3aXRoIG9mZi1ieS1vbmUgZXJyb3JzOyBmb3IgYW4gYXJyYXkgb2YgdGhy ZWUgZWxlbWVudHMsIGlmIGBhcnlbMy4uLl1gIChqdXN0IG91dHNpZGUgdGhlIGJvdW5kYXJ5KSBp cyBgW11gIHdoaWxlIGBhWzQuLi5dYCAob25lIG1vcmUgc3RlcCBvdXRzaWRlKSBpcyBgbmlsYCwg aXQgdHlwaWNhbGx5IHJlc3VsdHMgaW4gc29tZSBuYXN0eSBgTm9NZXRob2RFcnJvciBmb3IgTmls Q2xhc3NgLg0KDQpBIHNpbWlsYXIgZXhhbXBsZSBpcyBgYXJ5WzEuLl0ucmVkdWNlIHsgfWAgKGV2 ZXJ5dGhpbmcgZXhjZXB0IHRoZSBmaXJzdCBlbGVtZW50LS1wcm9iYWJseSB0aGUgZmlyc3QgZWxl bWVudCB3YXMgdXNlZCB0byBjb25zdHJ1Y3QgdGhlIGluaXRpYWwgdmFsdWUgZm9yIHJlZHVjaW5n KSB3aXRoIGBhcnlgIGJlaW5nIG5vbi1lbXB0eSA5OS45JSBvZiB0aGUgdGltZXMuIFRoZW4geW91 IG1lZXQgb25lIG9mIHRoZSAwLjElIGNhc2VzLCBhbmQgaW5zdGVhZCBvZiBuby1vcCByZWR1Y2lu ZyBub3RoaW5nLCBgTm9NZXRob2RFcnJvcmAgaXMgZmlyZWQuDQoNCg0KDQotLSANCmh0dHBzOi8v YnVncy5ydWJ5LWxhbmcub3JnLw0KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1 ZXN0QHJ1YnktbGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5 LWxhbmcub3JnL2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K