Hi,

In Pharo3 we had the bug that assigning to method arguments was allowed.

*Block* arguments are traditionally assignable, but this is equally a bad idea 
(there was already a setting
to forbid it, but no idea how to make it a default without making a lot of code 
unlovable).

First we made method arg assignment in Pharo4 an error, like it was in Pharo2, 
but
the problem with that is that there is code out there already… so (thanks to 
Nicolai Hess),
now assignments to method arguments raise an error in interactive mode (when 
coding), but
load fine e.g. with Monticello.

Yesterday I extended that scheme to block arguments: Now block argument 
assignments
are forbidden in interactive mode, while legacy code loads fine.

(I removed the #allowBlockArgumentAssignment setting, too).

This way we have a good transition and in some versions can make raising errors 
on assignments
to arguments the default even in non-interactive mode.

        Marcus

Reply via email to