
Issue #19345 has been updated by luke-gru (Luke Gruber). Yes, thanks for explanation. class_eval with string also works to change scope. ---------------------------------------- Bug #19345: Class variable access from top-level inappropriate error https://bugs.ruby-lang.org/issues/19345#change-101249 * Author: luke-gru (Luke Gruber) * Status: Closed * Priority: Normal * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- I was looking at doing something like this: ```ruby set_cvar = EnvUtil.labeled_class("SetCVar") do def self.set(val) @@a = val end end set_cvar.set(1) # fill write cache set_cvar.freeze set_cvar.set(2) # hit write cache, but should check frozen status ``` while working on a ruby issue (https://github.com/ruby/ruby/pull/7124) and I ran into an issue. This code above gives the error "class variable access from toplevel (RuntimeError)" Is this a bug or how it's supposed to work? The error is being raised in function `vm_get_cvar_base`. -- https://bugs.ruby-lang.org/