From: merch-redmine@... Date: 2019-08-14T05:51:14+00:00 Subject: [ruby-core:94338] [Ruby master Bug#11718] Constant access on `nil` Issue #11718 has been updated by jeremyevans0 (Jeremy Evans). File nil-const-access-11718.patch added This bug is still present in the master branch. Attached is a patch that fixes it. It adds a second argument to the getconstant instruction. It would probably be better for performance to add a separate instruction for the case where this is needed, but I'm not sure it is worth it. With the patch: ```ruby nil::Object # TypeError (nil is not a class/module) ``` ---------------------------------------- Bug #11718: Constant access on `nil` https://bugs.ruby-lang.org/issues/11718#change-80737 * Author: vais (Vais Salikhov) * Status: Open * Priority: Normal * Assignee: ko1 (Koichi Sasada) * Target version: * ruby -v: ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- It is possible to access top-level constants by doing `nil::CONSTANT`, which looks like a bug [according to Matz](https://github.com/opal/opal/issues/1197#issuecomment-158078778). Here are a couple of examples: ``` $ ruby -ve "Foo = 123; p nil::Foo" ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux] 123 ``` ``` $ ruby -ve "class A; Foo = 456; end; p nil::A::Foo" ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux] 456 ``` Thanks! ---Files-------------------------------- nil-const-access-11718.patch (5.32 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: