On 18.03.2014, at 18:17, Camille Teruel <camille.teruel@gmail.com> wrote:


On 18 mars 2014, at 17:02, Cl�ment Bera <bera.clement@gmail.com> wrote:

Hello,

For blockClosures it is normal, block closure arguments have always been assignable since smalltalk-80.

I never noticed, that's a weird 'feature'.

We could add a warning to discourage it, but we cannot forbid it, or we will not be able to load lots of frameworks and libraries that use it. So 12419 is not a bug to me, it's a feature.

You mean that there exist code out there that rely on being able to store in an argument?

Always assume the worst case scenario :p



For methods it is a bug, thanks for noticing. I will check.




2014-03-18 15:45 GMT+01:00 Nicolai Hess <nicolaihess@web.de>:
similiar to issue 12419  block arguments should be read only


2014-03-18 15:21 GMT+01:00 Camille Teruel <camille.teruel@gmail.com>:

Indeed, I can compile:

C>>foo: arg
        ^ arg := 3

And 'C new foo: 1' returns 3...


On 18 mars 2014, at 15:16, Igor Stasenko <siguctua@gmail.com> wrote:

> extent: newExtent
>
>     vertical
>         ifTrue: [ newExtent := self  defaultWidth @ newExtent y ]
>         ifFalse: [ newExtent := newExtent x @ self  defaultWidth ].
>
>     super extent: newExtent
>
> Can you verify it? Arguments should be not assignable.
>
> --
> Best regards,
> Igor Stasenko.