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 <[email protected]> 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 < > [email protected]> wrote: > >> >> >> ---------- Forwarded message ---------- >> From: abdelghani ALIDRA <[email protected]> >> To: "[email protected]" <[email protected]> >> 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 >> >> >> >> >
