On 2/16/07, Gregory Brown <gregory.t.brown / gmail.com> wrote:
> On 2/16/07, Stefan Rusterholz <apeiros / gmx.net> wrote:
> > Yukihiro Matsumoto wrote:
> > > Hi,
> > >
> > > In message "Re: Oppinions on RCR for dup on immutable classes"
> > >     on Fri, 16 Feb 2007 08:55:12 +0900, "Phrogz" <gavin / refinery.com>
> > > writes:
> > >
> > > |That's a statement of fact, but doesn't explain *why* it's a problem,
> > > |or (important for an RCR) why it needs to be fixed in the core of the
> > > |language.
> > > |
> > > |What is the use case that is prevented by the problem? What does it
> > > |make inconvenient? Why should it be changed?
> > >
> > > Seconded.  It pretty trivial for us core developers to make dup for
> > > immutable objects to return themselves, but _I_ don't understand why
> > > it is needed.  I assume obj.object_id != obj.dup.object_id, and see no
> > > good reason enough to break the assumption.
> > >
> > >               matz.
> >
> > That's why I have 2 suggestions. The issue arises when you don't know
> > what you dup.
> > Under the aspect that obj.object_id should always be ==
> > obj.dup.object_id the first suggestion
> > of removing dup from those classes would be more appropriate.
> > To me it seems inconsequential to implement a method with it only
> > raising an Exception.
> > That makes it impossible to check if your object doesn't actually
> > implement dup (e.g. via
> > respond_to?). To me it seems that it should either be an implementation
> > detail that
> > those classes can't really be duped (ie. return self) or expose that
> > transparently (not implement dup).
>
> >> a = 3
> => 3
> >> b = a.dup rescue a
> => 3
> >> b
> => 3
>
> What's so bad about that?
>
>

I would ask the question: Why do you dup a?
The answer is, I presume, because I will modify the duplicate and  I
do not want to modify the original.
ok so let us follow our code

b= a.dup rescue a
...

b.mutating_method
what will happen now?

Cheers
Robert

-- 
We have not succeeded in answering all of our questions.
In fact, in some ways, we are more confused than ever.
But we feel we are confused on a higher level and about more important things.
-Anonymous