From: bughitgithub@... Date: 2020-02-27T16:31:31+00:00 Subject: [ruby-core:97295] [Ruby master Feature#16644] qualified const init (self::CONST1 = 1) should be allowed in methods Issue #16644 has been updated by bughit (bug hit). > I'd rather make all const re-assignment error I don't disagree, actual const re-assignment, dynamically detected, probably should be an error. But then especially, there is no reason that a qualified const initialization (`mod::CONST2 = :CONST2 unless mod.const_defined?(:CONST2, false)`) should be an error. You would already be protected from const re-assignment, so why block what is simply a more direct syntax for initializing a const from a macro method? ---------------------------------------- Feature #16644: qualified const init (self::CONST1 = 1) should be allowed in methods https://bugs.ruby-lang.org/issues/16644#change-84413 * Author: bughit (bug hit) * Status: Rejected * 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: