On Fri, 12 Mar 2010, Ricardo Moran wrote:
> Hi, guys
>
> I'm sorry if what I'm about to ask is a newbie question but I'm puzzled
> about a behavior I found today regarding Arrays.
>
> a1 := #(0 0 0 0).
> a2 := #(0 0 0 0).
> a1 == a2
>
> If I select the whole expression above and execute it on a workspace it
> returns true (meaning that a1 and a2 are the same object). If I execute each
> line separately it returns false.
> I don't understand why this happens. Is this expected? or is it a bug?
>
> This only happens when I use the literal syntax, using Array >>
> #new:withAll: works fine regardless of the way I execute it. I'm inclined to
> think this is a bug, but I wanted to know what you think about it.
It's an optimization by the compiler. If the same literal object appears
twice or more, only one object will be created.
Levente
>
> Cheers
> Richo
>