[ruby-core:109514] [Ruby master Feature#17330] Object#non
From:
"Dan0042 (Daniel DeLorme)" <noreply@...>
Date:
2022-08-17 14:30:59 UTC
List:
ruby-core #109514
SXNzdWUgIzE3MzMwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgRGFuMDA0MiAoRGFuaWVsIERlTG9ybWUp LgoKCnVqaWhpc2EgKFRhdHN1aGlybyBVamloaXNhKSB3cm90ZSBpbiAjbm90ZS0xOToKPiBgaXRz ZWxmX2lmYAo+IGBpdHNlbGZfdW5sZXNzYAoKenZlcm9rIChWaWN0b3IgU2hlcGVsZXYpIHdyb3Rl IGluICNub3RlLTIxOgo+IEp1c3QgYCNpZmAgYW5kIGAjdW5sZXNzYCBsb29rIHRlbXB0aW5nLCB0 aG91Z2guCgpJbnRlcmVzdGluZyBzdWdnZXN0aW9uLiBMZXQncyBsb29rIGF0IHRoZSBwcmV2aW91 cyAibm9uIiBleGFtcGxlcyByZXdyaXR0ZW4gd2l0aCAiaXRzZWxmX3VubGVzcyIgYW5kICJ1bmxl c3MiCgpgYGBydWJ5CmNhbGN1bGF0ZS5zb21lLmxpbWl0Lm5vbigmOnplcm8/KSB8fCBERUZBVUxU X0xJTUlUCm5hbWUgPSBwYXJhbXNbOm5hbWVdJi5ub24oJjplbXB0eT8pCnBheWxvYWQuZGlnKCdh Y3Rpb24nLCAndHlwZScpLm5vbiB7IHxhY3Rpb258IFBST0hJQklURURfQUNUSU9OUy5pbmNsdWRl PyhhY3Rpb24pIH0KZmV0Y2hfc29tZXRoaW5nLm5vbigmOndpdGhfcHJvYmxlbXM/KQpyZXR1cm4g RmFyYWRheS5nZXQodXJsKS5ub24geyB8cnwgci5jb2RlID49IDQwMCB9Ji5ib2R5CmlmIHVzZXIu c3Vic2NyaXB0aW9uJi5ub24oJjpleHBpcmVkPykgCgpjYWxjdWxhdGUuc29tZS5saW1pdC5pdHNl bGZfdW5sZXNzKCY6emVybz8pIHx8IERFRkFVTFRfTElNSVQKbmFtZSA9IHBhcmFtc1s6bmFtZV0m Lml0c2VsZl91bmxlc3MoJjplbXB0eT8pCnBheWxvYWQuZGlnKCdhY3Rpb24nLCAndHlwZScpLml0 c2VsZl91bmxlc3MgeyB8YWN0aW9ufCBQUk9ISUJJVEVEX0FDVElPTlMuaW5jbHVkZT8oYWN0aW9u KSB9CmZldGNoX3NvbWV0aGluZy5pdHNlbGZfdW5sZXNzKCY6d2l0aF9wcm9ibGVtcz8pCnJldHVy biBGYXJhZGF5LmdldCh1cmwpLml0c2VsZl91bmxlc3MgeyB8cnwgci5jb2RlID49IDQwMCB9Ji5i b2R5CmlmIHVzZXIuc3Vic2NyaXB0aW9uJi5pdHNlbGZfdW5sZXNzKCY6ZXhwaXJlZD8pIAoKY2Fs Y3VsYXRlLnNvbWUubGltaXQudW5sZXNzKCY6emVybz8pIHx8IERFRkFVTFRfTElNSVQKbmFtZSA9 IHBhcmFtc1s6bmFtZV0mLnVubGVzcygmOmVtcHR5PykKcGF5bG9hZC5kaWcoJ2FjdGlvbicsICd0 eXBlJykudW5sZXNzIHsgfGFjdGlvbnwgUFJPSElCSVRFRF9BQ1RJT05TLmluY2x1ZGU/KGFjdGlv bikgfQpmZXRjaF9zb21ldGhpbmcudW5sZXNzKCY6d2l0aF9wcm9ibGVtcz8pCnJldHVybiBGYXJh ZGF5LmdldCh1cmwpLnVubGVzcyB7IHxyfCByLmNvZGUgPj0gNDAwIH0mLmJvZHkKaWYgdXNlci5z dWJzY3JpcHRpb24mLnVubGVzcygmOmV4cGlyZWQ/KSAKYGBgCgpZTU1WLCBidXQgdG8gbXkgZXll IGl0IGxvb2tzIGxpa2UgIm5vbiIgaXMgbW9yZSBleHByZXNzaXZlIHdoZW4gdXNlZCB3aXRoIGEg c2luZ2xlIHByZWRpY2F0ZSBtZXRob2QsIGFuZCAiaXRzZWxmX3VubGVzcyIgaXMgbW9yZSByZWFk YWJsZSBmb3IgbG9uZ2VyIGJsb2Nrcy4gQW5kICJ1bmxlc3MiIGlzIHJlbWFya2FibHkgcmVhZGFi bGUgaW4gYm90aCBzaXR1YXRpb25zLgoKPiBJIHdvbmRlciBpZiBgaXRzZWxmX3VubGVzc2AgaXMg YWN0dWFsbHkgdXNlZnVsIHJhdGhlciB0aGFuIGNvbmZ1c2luZy4KPiBZb3UgY2FuIGVhc2lseSBy ZXdyaXRlIGBpdHNlbGZfdW5sZXNzYCB3aXRoIGBpdHNlbGZfaWZgIHdpdGggYCFgLCBzdWNoIGFz IGB4Lml0c2VsZl9pZiB7ICFfMS5wcmVkPyB9YCB3aGljaCBpcyBwcmV0dHkgc3RyYWlnaHRmb3J3 YXJkLgoKSSB0aGluayBpdCdzIG1vcmUgdXNlZnVsIHRoYW4gYGl0c2VsZl9pZmAuIEluIG1hbnkg Y2FzZXMgdGhlIG5lZ2F0aW9uIGl0c2VsZiBpcyB3aGF0IG1ha2VzIHRoaXMgdXNlZnVsLCBvdGhl cndpc2UgeW91IHdvdWxkIGp1c3QgdXNlIHRoZSBwcmVkaWNhdGUgZGlyZWN0bHkuCgpgYGBydWJ5 CmlmIHVzZXIuc3Vic2NyaXB0aW9uJi5hY3RpdmU/ICAgICAgICAgICAgICAjIGlmIHN1YnNjcmlw dGlvbiBoYXMgImFjdGl2ZT8iIHRoZXJlIGlzIG5vIG5lZWQgaGVyZQppZiB1c2VyLnN1YnNjcmlw dGlvbiYuaXRzZWxmX2lmKCY6YWN0aXZlPykgIyB0byB1c2UgIm91aSIgb3IgIml0c2VsZl9pZiIK CmlmIHVzZXIuc3Vic2NyaXB0aW9uJi5ub24oJjpleHBpcmVkPykgICAgICAgICAgICMgaWYgc3Vi c2NyaXB0aW9uIG9ubHkgaGFzICJleHBpcmVkPyIgaXQgbmVlZHMgdG8gYmUgbmVnYXRlZCwKaWYg dXNlci5zdWJzY3JpcHRpb24mLml0c2VsZl9pZnsgIV8xLmV4cGlyZWQ/IH0gIyB3aGljaCBpcyB3 aHkgd2UgbmVlZCAibm9uIiBvciBhIG5lZ2F0ZWQgIml0c2VsZl9pZiIgb3IKaWYgdXNlci5zdWJz Y3JpcHRpb24mLml0c2VsZl91bmxlc3MoJjpleHBpcmVkPykgIyAiaXRzZWxmX3VubGVzcyIKYGBg CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZlYXR1cmUgIzE3MzMw OiBPYmplY3Qjbm9uCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8xNzMzMCNjaGFu Z2UtOTg2ODMKCiogQXV0aG9yOiB6dmVyb2sgKFZpY3RvciBTaGVwZWxldikKKiBTdGF0dXM6IE9w ZW4KKiBQcmlvcml0eTogTm9ybWFsCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKEFzIGFsd2F5cyAid2l0aCBjb3JlIiBtZXRob2QgcHJvcG9zYWxzLCBJIGRvbid0IGV4 cGVjdCBxdWljayBzdWNjZXNzLCBidXQgaG9wZSBmb3IgYSBmcnVpdGZ1bCBkaXNjdXNzaW9uKQoK IyMjIFJlYXNvbnM6CgpSdWJ5IGFsd2F5cyB0cmllZCB0byBiZSB2ZXJ5IGNoYWluYWJpbGl0eS1m cmllbmRseS4gUmVjZW50bHksIHdpdGggaW50cm9kdWN0aW9uIG9mIGAudGhlbmAgYW5kIGA9PmAs IGV2ZW4gbW9yZSBzby4gQnV0IG9uZSBwYXR0ZXJuIHRoYXQgZnJlcXVlbnRseSBlbWVyZ2VzIGFu ZCBkb2Vzbid0IGhhdmUgZ29vZCBpZGlvbWF0aWMgZXhwcmVzc2lvbjogY2FsY3VsYXRlIHNvbWV0 aGluZywgYW5kIGlmIGl0IGlzIG5vdCBhICJnb29kIiB2YWx1ZSwgcmV0dXJuIGBuaWxgIChvciBw cm92aWRlIGRlZmF1bHQgdmFsdWUgd2l0aCBgfHxgKS4gVGhlcmUgYXJlIGN1cnJlbnRseSB0d28g cGFydGlhbCBzb2x1dGlvbnM6CgoxLiBgbm9uemVybz9gIGluIFJ1YnkgY29yZSAoZnJlcXVlbnRs eSBtb2NrZWQgZm9yICJpbmFkZXF1YXRlIiBiZWhhdmlvciwgYXMgaXQgaXMgbG9va2luZyBsaWtl IHByZWRpY2F0ZSBtZXRob2QsIGJ1dCBpbnN0ZWFkIG9mIGB0cnVlYC9gZmFsc2VgIHJldHVybnMg YW4gb3JpZ2luYWwgdmFsdWUgb3IgYG5pbGApCjIuIEFjdGl2ZVN1cHBvcnQgYE9iamVjdCNwcmVz ZW5jZWAsIHdoaWNoIGFsc28gcmV0dXJucyBhbiBvcmlnaW5hbCB2YWx1ZSBvciBgbmlsYCBpZiBp dCBpcyBub3QgInByZXNlbnQiIChlLmcuIGBuaWxgIG9yIGBlbXB0eT9gIGluIEFTLXNwZWFrKQoK Qm90aCBvZiB0aGVtIHByb3ZlIHRoZW1zZWx2ZXMgcXVpdGUgdXNlZnVsIGluIHNvbWUgZG9tYWlu cywgYnV0IHRoZXkgYXJlIHRhcmdldGluZyBvbmx5IHRob3NlIHBhcnRpY3VsYXIgZG9tYWlucywg bG9vayB1bmxpa2UgZWFjaCBvdGhlciwgYW5kIGNhbiBiZSBjb25mdXNpbmcuCgojIyMgUHJvcG9z YWw6CgpNZXRob2QgYE9iamVjdCNub25gIChvciBgS2VybmVsI25vbmApLCB3aGljaCByZWNlaXZl cyBhIGJsb2NrLCBjYWxscyBpdCB3aXRoIHJlY2VpdmVyIGFuZCByZXR1cm5zIGBuaWxgIChpZiBi bG9jayBtYXRjaGVkKSBvciByZWNlaXZlciBvdGhlcndpc2UuCgojIyMjIyBQcm90b3R5cGUgaW1w bGVtZW50YXRpb246CgpgYGBydWJ5CmNsYXNzIE9iamVjdAogIGRlZiBub24KICAgIHNlbGYgdW5s ZXNzIHlpZWxkKHNlbGYpCiAgZW5kCmVuZApgYGAKCiMjIyMjIFVzYWdlIGV4YW1wbGVzOgoKMS4g V2l0aCBudW1iZXI6CgogICAgYGBgcnVieQogICAgbGltaXQgPSBjYWxjdWxhdGUuc29tZS5saW1p dAogICAgbGltaXQuemVybz8gPyBERUZBVUxUX0xJTUlUIDogbGltaXQKICAgICMgb3IsIHdpdGgg bm9uemVybz8KICAgIGNhbGN1bGF0ZS5zb21lLmxpbWl0Lm5vbnplcm8/IHx8IERFRkFVTFRfTElN SVQKICAgICMgd2l0aCBub246CiAgICBjYWxjdWxhdGUuc29tZS5saW1pdC5ub24oJjp6ZXJvPykg fHwgREVGQVVMVF9MSU1JVAogICAgIyBeIE5vdGUgaGVyZSwgaG93LCB1bmxpa2UgYG5vbnplcm8/ YCwgd2Ugc2VlIHByZWRpY2F0ZS15ID8sIGJ1dCBpdCBpcyBJTlNJREUgdGhlIGBub24oKWAgYW5k IGxlc3MgY29uZnVzaW5nCiAgICBgYGAKCjIuIFdpdGggc3RyaW5nOgoKICAgIGBgYHJ1YnkKICAg IG5hbWUgPSBwYXJhbXNbOm5hbWVdIGlmIHBhcmFtc1s6bmFtZV0gJiYgIXBhcmFtc1s6bmFtZV0u ZW1wdHk/CiAgICAjIG9yLCB3aXRoIEFjdGl2ZVN1cHBvcnQ6CiAgICBuYW1lID0gcGFyYW1zWzpu YW1lXS5wcmVzZW5jZQogICAgIyB3aXRoIG5vbjoKICAgIG5hbWUgPSBwYXJhbXNbOm5hbWVdJi5u b24oJjplbXB0eT8pCiAgICBgYGAKCjMuIE1vcmUgY29tcGxpY2F0ZWQgZXhhbXBsZQoKICAgIGBg YHJ1YnkKICAgIGFjdGlvbiA9IHBheWxvYWQuZGlnKCdhY3Rpb24nLCAndHlwZScpCiAgICByZXR1 cm4gaWYgUFJPSElCSVRFRF9BQ1RJT05TLmluY2x1ZGU/KGFjdGlvbikKICAgIHNlbmQoImRvXyN7 YWN0aW9ufSIpCiAgICAjIHdpdGggbm9uICYgdGhlbjoKICAgIHBheWxvYWQuZGlnKCdhY3Rpb24n LCAndHlwZScpCiAgICAgIC5ub24geyB8YWN0aW9ufCBQUk9ISUJJVEVEX0FDVElPTlMuaW5jbHVk ZT8oYWN0aW9uKSB9CiAgICAgICYudGhlbiB7IHxhY3Rpb258IHNlbmQoImRvXyN7YWN0aW9ufSIp IH0KICAgIGBgYAoKQmFzaWNhbGx5LCB0aGUgcHJvcG9zYWwgaXMgYSAiY2hhaW5hYmxlIGd1YXJk IGNsYXVzZSIgdGhhdCBhbGxvd3MgdG8gImNoYWluImlmeSBhbmQgRFJZaWZ5IGNvZGUgbGlrZToK CmBgYHJ1YnkKdmFsdWUgPSBmZXRjaF9zb21ldGhpbmcKcmV0dXJuIHZhbHVlIHVubGVzcyB2YWx1 ZS53aXRoX3Byb2JsZW1zPwojIHdoaWNoIHR1cm5zIGludG8KZmV0Y2hfc29tZXRoaW5nLm5vbigm OndpdGhfcHJvYmxlbXM/KQoKIyBvcgp2YWx1ZSA9IGZldGNoX3NvbWV0aGluZwp2YWx1ZSA9IHJl YXNvbmFibGVfZGVmYXVsdCBpZiB2YWx1ZS53aXRoX3Byb2JsZW1zPwojIHR1cm5zIGludG8KdmFs dWUgPSBmZXRjaF9zb21ldGhpbmcubm9uKCY6d2l0aF9wcm9ibGVtcz8pIHx8IHJlYXNvbmFibGVf ZGVmYXVsdApgYGAKCkkgYmVsaWV2ZSB0aGF0IHRoaXMgaWRpb20gaXMgZnJlcXVlbnQgZW5vdWdo LCBpbiBjb21iaW5hdGlvbnMgbGlrZSAoYXNzb3J0ZWQgZXhhbXBsZXMpICJyZWFkIGNvbmZpZyBm aWxlIGJ1dCByZXR1cm4gYG5pbGAgaWYgaXQgaXMgZW1wdHkvd3JvbmcgdmVyc2lvbiIsICJmZXRj aCBsYXRlc3QgaW52b2ljZSwgYnV0IGlnbm9yZSBpZiBpdCBoYXMgYW4gYHVucGF5YWJsZWAgZmxh ZyIsICJmZXRjaCBhIGxpc3Qgb2YgbGFzdCB1c2VyJ3Mgc2VhcmNoZXMsIGJ1dCBpZiBpdCBpcyBl bXB0eSwgcHJvdmlkZSBkZWZhdWx0IHNlYXJjaCBoaW50cyIgZXRjLgoKSSBiZWxpZXZlIHRoZXJl IF9pc18gdW4gdW5yZWZsZWN0ZWQgbmVlZCBmb3IgaWRpb20gbGlrZSB0aGlzLCB0aGUgbmVlZCB0 aGF0IGlzIGRlbW9uc3RyYXRlZCBieSB0aGUgZXhpc3RlbmNlIG9mIGBub256ZXJvP2AgYW5kIGBw cmVzZW5jZWAuCgoKCi0tIApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8KClVuc3Vic2NyaWJl OiA8bWFpbHRvOnJ1YnktY29yZS1yZXF1ZXN0QHJ1YnktbGFuZy5vcmc/c3ViamVjdD11bnN1YnNj cmliZT4KPGh0dHA6Ly9saXN0cy5ydWJ5LWxhbmcub3JnL2NnaS1iaW4vbWFpbG1hbi9vcHRpb25z L3J1YnktY29yZT4K