[ruby-core:109506] [Ruby master Feature#17330] Object#non
From:
"Dan0042 (Daniel DeLorme)" <noreply@...>
Date:
2022-08-16 17:53:36 UTC
List:
ruby-core #109506
SXNzdWUgIzE3MzMwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgRGFuMDA0MiAoRGFuaWVsIERlTG9ybWUp LgoKCm1hbWUgKFl1c3VrZSBFbmRvaCkgd3JvdGUgaW4gI25vdGUtMTU6Cj4gYGBgCj4gcGFyYW1z WzpuYW1lXSYubm9uKCY6ZW1wdHk/KQo+IGBgYAo+IAo+IEZyYW5rbHkgc3BlYWtpbmcsIHRoaXMg YWJvdmUgaXMgZGVhZCBoYXJkIHRvIHJlYWQgYW5kIHdyaXRlIGZvciBtZS4gRG8geW91IGFsbCBy ZWFsbHkgd2FudCB0aGlzPwoKUGVyc29uYWxseSBzcGVha2luZywgeWVzLCB0aGUgYWJvdmUgaXMg Y2xlYXIgdG8gbWUsIGFuZCByZWFkcyBlYXNpbHksIG11Y2ggbW9yZSB0aGFuIHRoZSBhbHRlcm5h dGl2ZXMuCgo+IGBgYAo+IHJldHVybiBGYXJhZGF5LmdldCh1cmwpLm5vbiB7IHxyfCByLmNvZGUg Pj0gNDAwIH0mLmJvZHkKPiBgYGAKCk9uIHRoZSBvdGhlciBoYW5kIEkgYWxzbyBmaW5kIHRoaXMg aGFyZCB0byByZWFkLgpCdXQgaXQncyBhbGwgdXAgdG8gdGhlIHByb2dyYW1tZXIgdG8gd3JpdGUg ZWFzeS10by1yZWFkIGNvZGUuIFRoaXMgaXMgb25lIG9mIHRoZSB0b29scyB0aGF0IGNvdWxkIGhl bHAuIE9yIGhpbmRlciBkZXBlbmRpbmcgb24gaG93IGl0J3MgdXNlZC4KIlRoZSAqKnBvc3NpYmls aXR5KiogdG8gbWFrZSBjb2RlIGNyeXB0aWMgaXRzZWxmIHNob3VsZCBub3QgYmUgdGhlIHJlYXNv biB0byB3aXRoZHJhdyBhIGZlYXR1cmUuIiBbLU1hdHpdKGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcu b3JnL2lzc3Vlcy8xNTcyMyNub3RlLTIpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCkZlYXR1cmUgIzE3MzMwOiBPYmplY3Qjbm9uCmh0dHBzOi8vYnVncy5ydWJ5LWxh bmcub3JnL2lzc3Vlcy8xNzMzMCNjaGFuZ2UtOTg2NzUKCiogQXV0aG9yOiB6dmVyb2sgKFZpY3Rv ciBTaGVwZWxldikKKiBTdGF0dXM6IE9wZW4KKiBQcmlvcml0eTogTm9ybWFsCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKEFzIGFsd2F5cyAid2l0aCBjb3JlIiBtZXRo b2QgcHJvcG9zYWxzLCBJIGRvbid0IGV4cGVjdCBxdWljayBzdWNjZXNzLCBidXQgaG9wZSBmb3Ig YSBmcnVpdGZ1bCBkaXNjdXNzaW9uKQoKIyMjIFJlYXNvbnM6CgpSdWJ5IGFsd2F5cyB0cmllZCB0 byBiZSB2ZXJ5IGNoYWluYWJpbGl0eS1mcmllbmRseS4gUmVjZW50bHksIHdpdGggaW50cm9kdWN0 aW9uIG9mIGAudGhlbmAgYW5kIGA9PmAsIGV2ZW4gbW9yZSBzby4gQnV0IG9uZSBwYXR0ZXJuIHRo YXQgZnJlcXVlbnRseSBlbWVyZ2VzIGFuZCBkb2Vzbid0IGhhdmUgZ29vZCBpZGlvbWF0aWMgZXhw cmVzc2lvbjogY2FsY3VsYXRlIHNvbWV0aGluZywgYW5kIGlmIGl0IGlzIG5vdCBhICJnb29kIiB2 YWx1ZSwgcmV0dXJuIGBuaWxgIChvciBwcm92aWRlIGRlZmF1bHQgdmFsdWUgd2l0aCBgfHxgKS4g VGhlcmUgYXJlIGN1cnJlbnRseSB0d28gcGFydGlhbCBzb2x1dGlvbnM6CgoxLiBgbm9uemVybz9g IGluIFJ1YnkgY29yZSAoZnJlcXVlbnRseSBtb2NrZWQgZm9yICJpbmFkZXF1YXRlIiBiZWhhdmlv ciwgYXMgaXQgaXMgbG9va2luZyBsaWtlIHByZWRpY2F0ZSBtZXRob2QsIGJ1dCBpbnN0ZWFkIG9m IGB0cnVlYC9gZmFsc2VgIHJldHVybnMgYW4gb3JpZ2luYWwgdmFsdWUgb3IgYG5pbGApCjIuIEFj dGl2ZVN1cHBvcnQgYE9iamVjdCNwcmVzZW5jZWAsIHdoaWNoIGFsc28gcmV0dXJucyBhbiBvcmln aW5hbCB2YWx1ZSBvciBgbmlsYCBpZiBpdCBpcyBub3QgInByZXNlbnQiIChlLmcuIGBuaWxgIG9y IGBlbXB0eT9gIGluIEFTLXNwZWFrKQoKQm90aCBvZiB0aGVtIHByb3ZlIHRoZW1zZWx2ZXMgcXVp dGUgdXNlZnVsIGluIHNvbWUgZG9tYWlucywgYnV0IHRoZXkgYXJlIHRhcmdldGluZyBvbmx5IHRo b3NlIHBhcnRpY3VsYXIgZG9tYWlucywgbG9vayB1bmxpa2UgZWFjaCBvdGhlciwgYW5kIGNhbiBi ZSBjb25mdXNpbmcuCgojIyMgUHJvcG9zYWw6CgpNZXRob2QgYE9iamVjdCNub25gIChvciBgS2Vy bmVsI25vbmApLCB3aGljaCByZWNlaXZlcyBhIGJsb2NrLCBjYWxscyBpdCB3aXRoIHJlY2VpdmVy IGFuZCByZXR1cm5zIGBuaWxgIChpZiBibG9jayBtYXRjaGVkKSBvciByZWNlaXZlciBvdGhlcndp c2UuCgojIyMjIyBQcm90b3R5cGUgaW1wbGVtZW50YXRpb246CgpgYGBydWJ5CmNsYXNzIE9iamVj dAogIGRlZiBub24KICAgIHNlbGYgdW5sZXNzIHlpZWxkKHNlbGYpCiAgZW5kCmVuZApgYGAKCiMj IyMjIFVzYWdlIGV4YW1wbGVzOgoKMS4gV2l0aCBudW1iZXI6CgogICAgYGBgcnVieQogICAgbGlt aXQgPSBjYWxjdWxhdGUuc29tZS5saW1pdAogICAgbGltaXQuemVybz8gPyBERUZBVUxUX0xJTUlU IDogbGltaXQKICAgICMgb3IsIHdpdGggbm9uemVybz8KICAgIGNhbGN1bGF0ZS5zb21lLmxpbWl0 Lm5vbnplcm8/IHx8IERFRkFVTFRfTElNSVQKICAgICMgd2l0aCBub246CiAgICBjYWxjdWxhdGUu c29tZS5saW1pdC5ub24oJjp6ZXJvPykgfHwgREVGQVVMVF9MSU1JVAogICAgIyBeIE5vdGUgaGVy ZSwgaG93LCB1bmxpa2UgYG5vbnplcm8/YCwgd2Ugc2VlIHByZWRpY2F0ZS15ID8sIGJ1dCBpdCBp cyBJTlNJREUgdGhlIGBub24oKWAgYW5kIGxlc3MgY29uZnVzaW5nCiAgICBgYGAKCjIuIFdpdGgg c3RyaW5nOgoKICAgIGBgYHJ1YnkKICAgIG5hbWUgPSBwYXJhbXNbOm5hbWVdIGlmIHBhcmFtc1s6 bmFtZV0gJiYgIXBhcmFtc1s6bmFtZV0uZW1wdHk/CiAgICAjIG9yLCB3aXRoIEFjdGl2ZVN1cHBv cnQ6CiAgICBuYW1lID0gcGFyYW1zWzpuYW1lXS5wcmVzZW5jZQogICAgIyB3aXRoIG5vbjoKICAg IG5hbWUgPSBwYXJhbXNbOm5hbWVdJi5ub24oJjplbXB0eT8pCiAgICBgYGAKCjMuIE1vcmUgY29t cGxpY2F0ZWQgZXhhbXBsZQoKICAgIGBgYHJ1YnkKICAgIGFjdGlvbiA9IHBheWxvYWQuZGlnKCdh Y3Rpb24nLCAndHlwZScpCiAgICByZXR1cm4gaWYgUFJPSElCSVRFRF9BQ1RJT05TLmluY2x1ZGU/ KGFjdGlvbikKICAgIHNlbmQoImRvXyN7YWN0aW9ufSIpCiAgICAjIHdpdGggbm9uICYgdGhlbjoK ICAgIHBheWxvYWQuZGlnKCdhY3Rpb24nLCAndHlwZScpCiAgICAgIC5ub24geyB8YWN0aW9ufCBQ Uk9ISUJJVEVEX0FDVElPTlMuaW5jbHVkZT8oYWN0aW9uKSB9CiAgICAgICYudGhlbiB7IHxhY3Rp b258IHNlbmQoImRvXyN7YWN0aW9ufSIpIH0KICAgIGBgYAoKQmFzaWNhbGx5LCB0aGUgcHJvcG9z YWwgaXMgYSAiY2hhaW5hYmxlIGd1YXJkIGNsYXVzZSIgdGhhdCBhbGxvd3MgdG8gImNoYWluImlm eSBhbmQgRFJZaWZ5IGNvZGUgbGlrZToKCmBgYHJ1YnkKdmFsdWUgPSBmZXRjaF9zb21ldGhpbmcK cmV0dXJuIHZhbHVlIHVubGVzcyB2YWx1ZS53aXRoX3Byb2JsZW1zPwojIHdoaWNoIHR1cm5zIGlu dG8KZmV0Y2hfc29tZXRoaW5nLm5vbigmOndpdGhfcHJvYmxlbXM/KQoKIyBvcgp2YWx1ZSA9IGZl dGNoX3NvbWV0aGluZwp2YWx1ZSA9IHJlYXNvbmFibGVfZGVmYXVsdCBpZiB2YWx1ZS53aXRoX3By b2JsZW1zPwojIHR1cm5zIGludG8KdmFsdWUgPSBmZXRjaF9zb21ldGhpbmcubm9uKCY6d2l0aF9w cm9ibGVtcz8pIHx8IHJlYXNvbmFibGVfZGVmYXVsdApgYGAKCkkgYmVsaWV2ZSB0aGF0IHRoaXMg aWRpb20gaXMgZnJlcXVlbnQgZW5vdWdoLCBpbiBjb21iaW5hdGlvbnMgbGlrZSAoYXNzb3J0ZWQg ZXhhbXBsZXMpICJyZWFkIGNvbmZpZyBmaWxlIGJ1dCByZXR1cm4gYG5pbGAgaWYgaXQgaXMgZW1w dHkvd3JvbmcgdmVyc2lvbiIsICJmZXRjaCBsYXRlc3QgaW52b2ljZSwgYnV0IGlnbm9yZSBpZiBp dCBoYXMgYW4gYHVucGF5YWJsZWAgZmxhZyIsICJmZXRjaCBhIGxpc3Qgb2YgbGFzdCB1c2VyJ3Mg c2VhcmNoZXMsIGJ1dCBpZiBpdCBpcyBlbXB0eSwgcHJvdmlkZSBkZWZhdWx0IHNlYXJjaCBoaW50 cyIgZXRjLgoKSSBiZWxpZXZlIHRoZXJlIF9pc18gdW4gdW5yZWZsZWN0ZWQgbmVlZCBmb3IgaWRp b20gbGlrZSB0aGlzLCB0aGUgbmVlZCB0aGF0IGlzIGRlbW9uc3RyYXRlZCBieSB0aGUgZXhpc3Rl bmNlIG9mIGBub256ZXJvP2AgYW5kIGBwcmVzZW5jZWAuCgoKCi0tIApodHRwczovL2J1Z3MucnVi eS1sYW5nLm9yZy8KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1Ynkt bGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcub3Jn L2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K