--- Begin Message ---Hi Peter, Yes. More basically : 1) you compile a method with parameter anObject 2) you add an instance anObject 3) you try to modify/compile the method and you have a message error.Maybe there should be a kind of warning message Abdelghani -------------------------------------------- En date de : Lun 27.11.17, Peter Uhnák <i.uh...@gmail.com> a écrit : Objet: Re: [Pharo-users] Removing instance variables doesn't recompile the methods À: "Any question about pharo is welcome" <pharo-users@lists.pharo.org> Cc: "abdelghani ALIDRA" <alidran...@yahoo.fr> Date: Lundi 27 novembre 2017, 10h21 As far as I know this has been a _feature_ for a very long time.Automatic recompiling methods is not the best idea, because: 1) you compile a method with temp var "hello" that uses inst var "world"2) you add a inst var "hello"3) you remove "world"4) trying to recompile the method will fail, because suddenly there's a clash between temp var "hello" and inst var "hello" Don't forget that the methods are compiled, not interpreted. So this behavior is expected. Peter On Mon, Nov 27, 2017 at 6:03 AM, Ben Coman <b...@openinworld.com> wrote: Thanks for reporting Abdelghani.Now it would be doubly useful if you could isolate which build introduced the problem.PharoLauncher can be used to help bisect working/non-working images. cheers -ben On 27 November 2017 at 04:08, abdelghani ALIDRA via Pharo-users <pharo-users@lists.pharo.org> wrote: ---------- Forwarded message ---------- From: abdelghani ALIDRA <alidran...@yahoo.fr> To: "pharo-users@lists.pharo. org" <pharo-users@lists.pharo.org> Cc: Bcc: Date: Sun, 26 Nov 2017 20:08:29 +0000 (UTC) Subject: Removing instance variables doesn't recompile the methods Hi, In a fresh pharo 6 image, I add a class with an instance variable x and implement accessors. Then I write a test method for the accessors of x MyClassTest>>testReadWriteX self assert (MyClass new x: 0) x equals: 0 I run the test and obviously it is green BUT I remove the instance variable x. Obviously, the accessors are broken and the test should be red when I execute it again but it is not!!! I can even change the class again (to recompile it I thought) or even load the code in a new image and the tests are still green. I can also invoque the broken methods in a playground or in an inspector : MyClass new x: 0; increment; x then printIt. and astonishingly 1 is printed. The only way to detect the error is to recompile the method but this does not happen (maybe it should) when instance variables are modified or removed in the class (even when you use the refactoring tool!) I think this is annoying because one can no more really trust his tests. Cheers Abdelghani
--- End Message ---
Re: [Pharo-users] Removing instance variables doesn't recompile the methods
abdelghani ALIDRA via Pharo-users Mon, 27 Nov 2017 06:56:23 -0800
- [Pharo-users] Removing instance variable... abdelghani ALIDRA via Pharo-users
- Re: [Pharo-users] Removing instance... Stephane Ducasse
- Re: [Pharo-users] Removing inst... Stephane Ducasse
- Re: [Pharo-users] Removing instance... Ben Coman
- Re: [Pharo-users] Removing inst... Peter Uhnák
- Re: [Pharo-users] Removing instance... abdelghani ALIDRA via Pharo-users
- Re: [Pharo-users] Removing instance... abdelghani ALIDRA via Pharo-users