http://code.google.com/p/pharo/issues/detail?id=6526 here you are :)
On Sun, Aug 5, 2012 at 1:39 PM, Mariano Martinez Peck <[email protected] > wrote: > > > On Sun, Aug 5, 2012 at 1:07 PM, Guillermo Polito < > [email protected]> wrote: > >> >> >> On Sat, Aug 4, 2012 at 2:41 PM, Mariano Martinez Peck < >> [email protected]> wrote: >> >>> >>> >>> On Sat, Aug 4, 2012 at 2:34 PM, Mariano Martinez Peck < >>> [email protected]> wrote: >>> >>>> Hi Stef. I notice that RPackage does not update the extension methods >>>> of removed classes. It is easy to reproduce in Pharo 2.0 by doing: >>>> >>>> (RPackageOrganizer default packageNamed: 'FreeType') >>>> allDefinedExtensionMethods (this fails because FreeType used to have a >>>> extension method in TTCFont which was removed) >>>> >>>> Or step by step: >>>> >>>> 1) Create package PackageX. >>>> 2) Create package PackageY and ClassY. >>>> 3) Create in ClassY a extension method with category *PackageX. If you >>>> now browse the instVar "classExtensionSelectors" of PackageX you will see >>>> ClassY. >>>> 4) Remove ClassY >>>> 5) notice that 'classExtensionSelectors' from PackageX still references >>>> ClassY. In fact, if you ask its extension methods you will have a >>>> KeyNotFound #ClassY in Smalltalk globals ;) >>>> >>>> So...I guess this is a bug. If true, I open an issue. >>>> >>>> >>> and to fix the already existing ones we can do: >>> >>> | extensions | >>> RPackage allInstances do: [:aPackage | >>> extensions := (aPackage instVarNamed: 'classExtensionSelectors'). >>> extensions keysDo: [:aClassName | >>> (Smalltalk globals includesKey: aClassName) ifFalse: [extensions >>> removeKey: aClassName]. >>> ]. >>> extensions := (aPackage instVarNamed: 'metaclassExtensionSelectors'). >>> extensions keysDo: [:aClassName | >>> (Smalltalk globals includesKey: aClassName) ifFalse: [extensions >>> removeKey: aClassName]. >>> ]. >>> ] >>> >>> >> Easier: >> >> 1) integrate http://code.google.com/p/pharo/issues/detail?id=6521 >> 2) RPackageOrganizer initialize. >> >> > > Indeed, I saw that later. That only helps to fix the existing ones but it > does not solve the problem. > > > >> >>> >>>> Cheers, >>>> >>>> -- >>>> Mariano >>>> http://marianopeck.wordpress.com >>>> >>>> >>> >>> >>> -- >>> Mariano >>> http://marianopeck.wordpress.com >>> >>> >> > > > -- > Mariano > http://marianopeck.wordpress.com > >
