[ruby-core:120260] [Ruby master Feature#20953] Array#fetch_values vs #values_at protocols
From:
"byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Date:
2024-12-16 11:52:16 UTC
List:
ruby-core #120260
SXNzdWUgIzIwOTUzIGhhcyBiZWVuIHVwZGF0ZWQgYnkgYnlyb290IChKZWFuIEJvdXNzaWVyKS4N Cg0KDQo+IERvIHdlIGhhdmUgYSBsb3Qgb2YgdGhvc2UsIGFuZCB3aGF04oCZcyB0aGUgcmVhc29u aW5nL3VzZSBjYXNlcyBiZWhpbmQgdGhpcz8gDQoNClRoaW5ncyBsaWtlIGAjZGlnYCwgc28gdGhh dCB5b3UgY2FuIHRyYXZlcnNlIGEgdHJlZSBvZiBtaXhlZCBIYXNoL0FycmF5IHdpdGggc29tZSBz b3J0IG9mICJwYXRoIiBhcmd1bWVudC4NCg0KRWl0aGVyIHdheSwgSSBzZWUgcHJvcyBhbmQgY29u cyB0byBib3RoIGJlaGF2aW9yLCBzbyBpdCdzIG5vdCBmb3IgbWUgdG8gZGVjaWRlLCBpdCdzIHVw IHRvIEBtYXR6Lg0KDQpUaGUgaXNzdWUgdGhvdWdoIGlzIHRoZSByZWxlYXNlIGlzIGltbWluZW50 IGFuZCB0aGUgbmV4dCBkZXZlbG9wZXIgbWVldGluZyBpcyBzY2hlZHVsZWQgZm9yIEphbnVhcnku IFNvIGlmIHlvdSB3aXNoIHRvIGNoYW5nZSB0aGlzIGJlZm9yZSB0aGUgcmVsZWFzZSB5b3UnbGwg aGF2ZSB0byBwaW5nIEBtYXR6IG9uIFR3aXR0ZXIgb3Igc29tZXRoaW5nIGZvciBoaW0gdG8gbWFr ZSBhIGRlY2lzaW9uIGluIHRpbWUuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCkZlYXR1cmUgIzIwOTUzOiBBcnJheSNmZXRjaF92YWx1ZXMgdnMgI3ZhbHVlc19h dCBwcm90b2NvbHMNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8yMDk1MyNjaGFu Z2UtMTExMDI2DQoNCiogQXV0aG9yOiB6dmVyb2sgKFZpY3RvciBTaGVwZWxldikNCiogU3RhdHVz OiBPcGVuDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpJIGJlbGll dmUgdGhhdCB0aGUgdXNlciBtaWdodCBleHBlY3QgYCNmZXRjaF92YWx1ZXNgIHRvIGJlIGEgc3Ry aWN0ZXIgdmVyc2lvbiBvZiBgI3ZhbHVlc19hdGAsIGNvbmZpcm1pbmcgdG8gdGhlIHNhbWUgcHJv dG9jb2wgZm9yIGFyZ3VtZW50cy4gDQoNCkJ1dCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBm b3IgYCNmZXRjaF92YWx1ZXNgIGlzIHNpbXBsZXI6DQpgYGBydWJ5DQpbMSwgMiwgMywgNCwgNV0u dmFsdWVzX2F0KDAsIDMuLjQpICAgICM9PiBbMSwgNCwgNV0NClsxLCAyLCAzLCA0LCA1XS5mZXRj aF92YWx1ZXMoMCwgMy4uNCkgIyBUeXBlRXJyb3I6IGluICdBcnJheSNmZXRjaCc6IG5vIGltcGxp Y2l0IGNvbnZlcnNpb24gb2YgUmFuZ2UgaW50byBJbnRlZ2VyDQpgYGANCg0KSSBiZWxpZXZlIGFs aWduaW5nIHRoZSBpbXBsZW1lbnRhdGlvbnMgd291bGQgbGVzc2VuIGNvbmZ1c2lvbiAoZXZlbiBp ZiBpdCBtYWtlcyBgI2ZldGNoX3ZhbHVlc2AgaW1wbGVtZW50YXRpb24gc29tZXdoYXQgbGVzcyB0 cml2aWFsKS4NCg0KVGhlIHByYWN0aWNhbCBleGFtcGxlIG9mIHVzZWZ1bG5lc3M6DQpgYGBydWJ5 DQpIRUFERVJTID0gJXdbTmFtZSBEZXBhcnRtZW50XQ0KDQpkZWYgdGFibGVfaGVhZGVycyhyb3dz KQ0KICBIRUFERVJTLmZldGNoX3ZhbHVlcyguLi5yb3dzLm1hcCgmOnNpemUpLm1heCkgeyAnPHVu a25vd24nPiB9DQogICMgT3IsIGFsdGVybmF0aXZlbHk6DQogICMgSEVBREVSUy5mZXRjaF92YWx1 ZXMoLi4ucm93cy5tYXAoJjpzaXplKS5tYXgpIHsgcmFpc2UgQXJndW1lbnRFcnJvciwgIk5vIGhl YWRlciBkZWZpbmVkIGZvciBjb2x1bW4gI3tpdCArIDF9IiB9DQplbmQNCg0KdGFibGVfaGVhZGVy cyhbDQogIFsnSm9obiddLA0KICBbJ0phbmUnXSwNCl0pICM9PiBbIk5hbWUiXQ0KDQp0YWJsZV9o ZWFkZXJzKFsNCiAgWydKb2huJ10sDQogIFsnSmFuZScsICdFbmdpbmVlcmluZyddLA0KXSkgIz0+ IFsiTmFtZSIsICJEZXBhcnRtZW50Il0NCg0KdGFibGVfaGVhZGVycyhbDQogIFsnSm9obicsICdB Y2NvdW50aW5nJywgJ0ZlYiAyNCddLA0KICBbJ0phbmUnLCAnRW5naW5lZXJpbmcnXSwNCl0pICM9 PiBbIk5hbWUiLCAiRGVwYXJ0bWVudCIsICI8dW5rbm93bj4iXQ0KIyBvciBBcmd1bWVudEVycm9y IE5vIGhlYWRlciBkZWZpbmVkIGZvciBjb2x1bW4gMw0KYGBgDQooT2J2aW91c2x5LCB3ZSBjYW4g dXNlIGBmZXRjaF92YWx1ZXMoKigwLi4ubWF4X3Jvd19zaXplKSlgIGFzIGFuIGFyZ3VtZW50LCBi dXQgaXQgZmVlbHMgbGlrZSBhbiB1bmp1c3RpZmllZCBleHRyYSB3b3JrIHdoZW4gYHZhbHVlc19h dGAgYWxyZWFkeSBjYW4gZG8gdGhpcy4pDQoNCg0KDQotLSANCmh0dHBzOi8vYnVncy5ydWJ5LWxh bmcub3JnLw0KIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K IHJ1YnktY29yZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1jb3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRv IHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcnVieS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFu Zy5vcmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0dHBzOi8vbWwucnVieS1sYW5nLm9yZy9tYWlsbWFu My9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8=