From: bughitgithub@... Date: 2020-02-26T23:23:45+00:00 Subject: [ruby-core:97274] [Ruby master Feature#16644] qualified const init (self::CONST1 = 1) should be allowed in methods Issue #16644 has been updated by bughit (bug hit). Subject changed from why is potential dynamic constant assignment an error when actual dynamic constant assignment is only a warning to qualified const init (self::CONST1 = 1) should be allowed in methods Tracker changed from Misc to Feature a qualified const init is so similar to meta-programming const_set that there's no reason to block it ```ruby module Mod1 end def define_consts(mod) # since this allowed mod.const_set(:CONST1, :CONST1) unless mod.const_defined?(:CONST1, false) # this should be too self::CONST2 = :CONST2 unless const_defined?(:CONST2, false) end define_consts(Mod1) ``` ---------------------------------------- Feature #16644: qualified const init (self::CONST1 = 1) should be allowed in methods https://bugs.ruby-lang.org/issues/16644#change-84391 * Author: bughit (bug hit) * Status: Open * Priority: Normal ---------------------------------------- ```rb module Mod1 def self.define_consts const_set(:CONST1, :CONST1) # this is actual const re-assignment but only a warning const_set(:CONST1, :CONST1) # this is const initialization but becomes an error # because it looks like it could be re-assignment # if actual const re-assignment is only a warning # why is a possible const re-assignment (which might not be one), an error self::CONST2 = :CONST2 unless const_defined?(:CONST2, false) end define_consts end ``` -- https://bugs.ruby-lang.org/ Unsubscribe: