gotoken / math.sci.hokudai.ac.jp (GOTO Kentaro) writes: > Hi, > > In message "[ruby-talk:01083] YADQ (Yet Another Dumb Question)" > on 00/01/10, Dave Thomas <Dave / thomases.com> writes: > > >Why don't I get a warning for this (at either global scope or within a > >class definition)? > > > > A = 1 > > A = 2 > > You are using ruby 1.5? Indeed I am. > Several months ago, Matz said that `constant' may be renamed to > `shared variable' or other name in the future. I need a sort of > variable which cannot be redefined and I object to lack of `constant' > but I have not sent comments yet :-< We'll it seems to me that we already have a mechanism for class variables: class Dave AVAL = [0] end def Dave.aClassVariable= (val) Dave::AVAL[0] = val end def Dave.aClassVariable Dave::AVAL[0] end I suspect this could be wrapped with a 'cattr' method in Class. However, if this change sticks, we'll lose the ability to have immutable variables, which seems like a big loss. So, I'd vote for retaining the old semantics of constants. Regards Dave ps: When I tried my example, I found another difference between method names starting with upper and lower case characters: def Dave.A=(val) parse error def Dave.a=(val) OK