Hi abdel I created a class with x and two accessors and I created the same test than you. They were green. Then I removed the instance variable x and I run the tests and they were greeeeeeeeennnnnnnnnnn (agrhhhhhhhh)
I checked the accessors and the methods where showing that the instance variable is missing. So to me this is indeed a bug. I have no idea why the test should run. Stef On Sun, Nov 26, 2017 at 9:08 PM, 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 > > >