[ruby-core:109446] [Ruby master Feature#17330] Object#non
From:
"byroot (Jean Boussier)" <noreply@...>
Date:
2022-08-08 07:51:12 UTC
List:
ruby-core #109446
SXNzdWUgIzE3MzMwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgYnlyb290IChKZWFuIEJvdXNzaWVyKS4K CgpJIGFsc28gdGhpbmsgYG5vdGAgd291bGQgYmUgYSBiZXR0ZXIgbmFtZSBmb3IgaXQ6CgpgYGBy dWJ5CmNsYXNzIE9iamVjdAogIGRlZiBub3QKICAgIHNlbGYgdW5sZXNzIHlpZWxkIHNlbGYKICBl bmQKZW5kCmBgYAoKU29tZXRoaW5nIHRoYXQgY29tZXMgdXAgZnJlcXVlbnRseSBpZiB0byBjaGVj ayB3ZXRoZXIgYW4gYXJndW1lbnQgaXMgZWl0aGVyIG5pbCBvciBlbXB0eSAoZS5nLiBodHRwczov L3R3aXR0ZXIuY29tL19rbzEvc3RhdHVzLzE1NTU0MjQ5NTMxOTMwNzA1OTMpLCBhbmQgc2FmZSBu YXZpZ2F0aW9uIGNhbid0IGJlIHVzZWQgYmVjYXVzZSB0aGVyZSBpcyBubyBpbnZlcnNlIG9mIGBl bXB0eT9gOgoKYGBgcnVieQpkZWYgZG9fc29tZXRoaW5nKGFyZykKICBpZiBhcmcgJiYgIWFyZy5l bXB0eT8KICAgICMgLi4uIHNuaXAKICBlbmQKZW5kCmBgYAoKV2hpY2ggb2Z0ZW4gbGVhZCB1c2Vy cyB0byBpbmNvcnJlY3RseSB1c2UgYGFueT9gOgoKYGBgcnVieQogIGlmIGFyZyYuYW55PwogICAg IyAuLi4gc25pcAogIGVuZApgYGAKCldpdGggdGhpcyBwcm9wb3NhbCBpdCBjb3VsZCBiZSB3cml0 dGVuIGFzOgoKYGBgcnVieQogIGlmIGFyZyYubm90KCY6ZW1wdHk/KQogICAgIyAuLi4gc25pcAog IGVuZApgYGAKCldoaWNoIGlzbid0IG11Y2ggc2hvcnRlciwgYnV0IGZsb3dzIG11Y2ggYmV0dGVy IElNSE8uCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRmVhdHVy ZSAjMTczMzA6IE9iamVjdCNub24KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE3 MzMwI2NoYW5nZS05ODU5OQoKKiBBdXRob3I6IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2KQoqIFN0 YXR1czogT3BlbgoqIFByaW9yaXR5OiBOb3JtYWwKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQooQXMgYWx3YXlzICJ3aXRoIGNvcmUiIG1ldGhvZCBwcm9wb3NhbHMsIEkg ZG9uJ3QgZXhwZWN0IHF1aWNrIHN1Y2Nlc3MsIGJ1dCBob3BlIGZvciBhIGZydWl0ZnVsIGRpc2N1 c3Npb24pCgojIyMgUmVhc29uczoKClJ1YnkgYWx3YXlzIHRyaWVkIHRvIGJlIHZlcnkgY2hhaW5h YmlsaXR5LWZyaWVuZGx5LiBSZWNlbnRseSwgd2l0aCBpbnRyb2R1Y3Rpb24gb2YgYC50aGVuYCBh bmQgYD0+YCwgZXZlbiBtb3JlIHNvLiBCdXQgb25lIHBhdHRlcm4gdGhhdCBmcmVxdWVudGx5IGVt ZXJnZXMgYW5kIGRvZXNuJ3QgaGF2ZSBnb29kIGlkaW9tYXRpYyBleHByZXNzaW9uOiBjYWxjdWxh dGUgc29tZXRoaW5nLCBhbmQgaWYgaXQgaXMgbm90IGEgImdvb2QiIHZhbHVlLCByZXR1cm4gYG5p bGAgKG9yIHByb3ZpZGUgZGVmYXVsdCB2YWx1ZSB3aXRoIGB8fGApLiBUaGVyZSBhcmUgY3VycmVu dGx5IHR3byBwYXJ0aWFsIHNvbHV0aW9uczoKCjEuIGBub256ZXJvP2AgaW4gUnVieSBjb3JlIChm cmVxdWVudGx5IG1vY2tlZCBmb3IgImluYWRlcXVhdGUiIGJlaGF2aW9yLCBhcyBpdCBpcyBsb29r aW5nIGxpa2UgcHJlZGljYXRlIG1ldGhvZCwgYnV0IGluc3RlYWQgb2YgYHRydWVgL2BmYWxzZWAg cmV0dXJucyBhbiBvcmlnaW5hbCB2YWx1ZSBvciBgbmlsYCkKMi4gQWN0aXZlU3VwcG9ydCBgT2Jq ZWN0I3ByZXNlbmNlYCwgd2hpY2ggYWxzbyByZXR1cm5zIGFuIG9yaWdpbmFsIHZhbHVlIG9yIGBu aWxgIGlmIGl0IGlzIG5vdCAicHJlc2VudCIgKGUuZy4gYG5pbGAgb3IgYGVtcHR5P2AgaW4gQVMt c3BlYWspCgpCb3RoIG9mIHRoZW0gcHJvdmUgdGhlbXNlbHZlcyBxdWl0ZSB1c2VmdWwgaW4gc29t ZSBkb21haW5zLCBidXQgdGhleSBhcmUgdGFyZ2V0aW5nIG9ubHkgdGhvc2UgcGFydGljdWxhciBk b21haW5zLCBsb29rIHVubGlrZSBlYWNoIG90aGVyLCBhbmQgY2FuIGJlIGNvbmZ1c2luZy4KCiMj IyBQcm9wb3NhbDoKCk1ldGhvZCBgT2JqZWN0I25vbmAgKG9yIGBLZXJuZWwjbm9uYCksIHdoaWNo IHJlY2VpdmVzIGEgYmxvY2ssIGNhbGxzIGl0IHdpdGggcmVjZWl2ZXIgYW5kIHJldHVybnMgYG5p bGAgKGlmIGJsb2NrIG1hdGNoZWQpIG9yIHJlY2VpdmVyIG90aGVyd2lzZS4KCiMjIyMjIFByb3Rv dHlwZSBpbXBsZW1lbnRhdGlvbjoKCmBgYHJ1YnkKY2xhc3MgT2JqZWN0CiAgZGVmIG5vbgogICAg c2VsZiB1bmxlc3MgeWllbGQoc2VsZikKICBlbmQKZW5kCmBgYAoKIyMjIyMgVXNhZ2UgZXhhbXBs ZXM6CgoxLiBXaXRoIG51bWJlcjoKCiAgICBgYGBydWJ5CiAgICBsaW1pdCA9IGNhbGN1bGF0ZS5z b21lLmxpbWl0CiAgICBsaW1pdC56ZXJvPyA/IERFRkFVTFRfTElNSVQgOiBsaW1pdAogICAgIyBv ciwgd2l0aCBub256ZXJvPwogICAgY2FsY3VsYXRlLnNvbWUubGltaXQubm9uemVybz8gfHwgREVG QVVMVF9MSU1JVAogICAgIyB3aXRoIG5vbjoKICAgIGNhbGN1bGF0ZS5zb21lLmxpbWl0Lm5vbigm Onplcm8/KSB8fCBERUZBVUxUX0xJTUlUCiAgICAjIF4gTm90ZSBoZXJlLCBob3csIHVubGlrZSBg bm9uemVybz9gLCB3ZSBzZWUgcHJlZGljYXRlLXkgPywgYnV0IGl0IGlzIElOU0lERSB0aGUgYG5v bigpYCBhbmQgbGVzcyBjb25mdXNpbmcKICAgIGBgYAoKMi4gV2l0aCBzdHJpbmc6CgogICAgYGBg cnVieQogICAgbmFtZSA9IHBhcmFtc1s6bmFtZV0gaWYgcGFyYW1zWzpuYW1lXSAmJiAhcGFyYW1z WzpuYW1lXS5lbXB0eT8KICAgICMgb3IsIHdpdGggQWN0aXZlU3VwcG9ydDoKICAgIG5hbWUgPSBw YXJhbXNbOm5hbWVdLnByZXNlbmNlCiAgICAjIHdpdGggbm9uOgogICAgbmFtZSA9IHBhcmFtc1s6 bmFtZV0mLm5vbigmOmVtcHR5PykKICAgIGBgYAoKMy4gTW9yZSBjb21wbGljYXRlZCBleGFtcGxl CgogICAgYGBgcnVieQogICAgYWN0aW9uID0gcGF5bG9hZC5kaWcoJ2FjdGlvbicsICd0eXBlJykK ICAgIHJldHVybiBpZiBQUk9ISUJJVEVEX0FDVElPTlMuaW5jbHVkZT8oYWN0aW9uKQogICAgc2Vu ZCgiZG9fI3thY3Rpb259IikKICAgICMgd2l0aCBub24gJiB0aGVuOgogICAgcGF5bG9hZC5kaWco J2FjdGlvbicsICd0eXBlJykKICAgICAgLm5vbiB7IHxhY3Rpb258IFBST0hJQklURURfQUNUSU9O Uy5pbmNsdWRlPyhhY3Rpb24pIH0KICAgICAgJi50aGVuIHsgfGFjdGlvbnwgc2VuZCgiZG9fI3th Y3Rpb259IikgfQogICAgYGBgCgpCYXNpY2FsbHksIHRoZSBwcm9wb3NhbCBpcyBhICJjaGFpbmFi bGUgZ3VhcmQgY2xhdXNlIiB0aGF0IGFsbG93cyB0byAiY2hhaW4iaWZ5IGFuZCBEUllpZnkgY29k ZSBsaWtlOgoKYGBgcnVieQp2YWx1ZSA9IGZldGNoX3NvbWV0aGluZwpyZXR1cm4gdmFsdWUgdW5s ZXNzIHZhbHVlLndpdGhfcHJvYmxlbXM/CiMgd2hpY2ggdHVybnMgaW50bwpmZXRjaF9zb21ldGhp bmcubm9uKCY6d2l0aF9wcm9ibGVtcz8pCgojIG9yCnZhbHVlID0gZmV0Y2hfc29tZXRoaW5nCnZh bHVlID0gcmVhc29uYWJsZV9kZWZhdWx0IGlmIHZhbHVlLndpdGhfcHJvYmxlbXM/CiMgdHVybnMg aW50bwp2YWx1ZSA9IGZldGNoX3NvbWV0aGluZy5ub24oJjp3aXRoX3Byb2JsZW1zPykgfHwgcmVh c29uYWJsZV9kZWZhdWx0CmBgYAoKSSBiZWxpZXZlIHRoYXQgdGhpcyBpZGlvbSBpcyBmcmVxdWVu dCBlbm91Z2gsIGluIGNvbWJpbmF0aW9ucyBsaWtlIChhc3NvcnRlZCBleGFtcGxlcykgInJlYWQg Y29uZmlnIGZpbGUgYnV0IHJldHVybiBgbmlsYCBpZiBpdCBpcyBlbXB0eS93cm9uZyB2ZXJzaW9u IiwgImZldGNoIGxhdGVzdCBpbnZvaWNlLCBidXQgaWdub3JlIGlmIGl0IGhhcyBhbiBgdW5wYXlh YmxlYCBmbGFnIiwgImZldGNoIGEgbGlzdCBvZiBsYXN0IHVzZXIncyBzZWFyY2hlcywgYnV0IGlm IGl0IGlzIGVtcHR5LCBwcm92aWRlIGRlZmF1bHQgc2VhcmNoIGhpbnRzIiBldGMuCgpJIGJlbGll dmUgdGhlcmUgX2lzXyB1biB1bnJlZmxlY3RlZCBuZWVkIGZvciBpZGlvbSBsaWtlIHRoaXMsIHRo ZSBuZWVkIHRoYXQgaXMgZGVtb25zdHJhdGVkIGJ5IHRoZSBleGlzdGVuY2Ugb2YgYG5vbnplcm8/ YCBhbmQgYHByZXNlbmNlYC4KCgoKLS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLwoKVW5z dWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5nLm9yZz9zdWJqZWN0 PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dpLWJpbi9tYWlsbWFu L29wdGlvbnMvcnVieS1jb3JlPgo=