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

Reply via email to