Hello,

The additional assignment is not needed.��

You get a warning because the warning detection is approximate and sometimes raises warning whereas it should not, but if you proceed, it compiles fine.

2014-09-10 8:54 GMT+02:00 Hilaire <hilaire@drgeo.eu>:
Hello,

I noticed this change described bellow and I just want to have confirmation about it:

The new Pharo 2.0 compiler need to have variable assigned with a value before it used in a recursive bloc of code. Of course it is a bit inelegant. Or is it something else and does it need to be reported?

Thanks to let me know

Hilaire

For example this Dr. Geo code break in Pharo 2.0:

| triangle c |
triangle := [:s1 :s2 :s3 :n |
�� �� c segment: s1 to: s2;
�� �� �� �� segment: s2 to: s3;
�� �� �� �� segment: s3 to: s1.
�� �� n > 0 ifTrue:
�� �� �� �� [triangle
�� �� �� �� �� �� value: s1
�� �� �� �� �� �� value: (c middleOf: s1 and: s2) hide
�� �� �� �� �� �� value: (c middleOf: s1 and: s3) hide
�� �� �� �� �� �� value: n-1].
�� �� [...]
].

It must be changed to:

| triangle c |
triangle := []. <= CHANGE HERE
triangle := [:s1 :s2 :s3 :n |
�� �� c segment: s1 to: s2;
�� �� �� �� segment: s2 to: s3;
�� �� �� �� segment: s3 to: s1.
�� �� n > 0 ifTrue:
�� �� �� �� [triangle
�� �� �� �� �� �� value: s1
�� �� �� �� �� �� value: (c middleOf: s1 and: s2) hide
�� �� �� �� �� �� value: (c middleOf: s1 and: s3) hide
�� �� �� �� �� �� value: n-1].
�� �� [...]
].



--
Dr. Geo - http://drgeo.eu
iStoa - http://istao.drgeo.eu