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. |
On Sat, Aug 4, 2012 at 2:34 PM, Mariano Martinez Peck <[hidden email]> 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: 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]. ].
]
Mariano http://marianopeck.wordpress.com |
grrrr and the same happens for methods that are removed....they are not removed from the RPackage :(
On Sat, Aug 4, 2012 at 2:41 PM, Mariano Martinez Peck <[hidden email]> wrote:
Mariano http://marianopeck.wordpress.com |
In reply to this post by Mariano Martinez Peck
On Sat, Aug 4, 2012 at 2:34 PM, Mariano Martinez Peck <[hidden email]> 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:
It is, and those steps can be translated to a test! :D
|
In reply to this post by Mariano Martinez Peck
On Sat, Aug 4, 2012 at 2:41 PM, Mariano Martinez Peck <[hidden email]> wrote:
Easier: 1) integrate http://code.google.com/p/pharo/issues/detail?id=6521
2) RPackageOrganizer initialize.
|
Ok, I found the bug, I'm killing it.
On Sun, Aug 5, 2012 at 1:07 PM, Guillermo Polito <[hidden email]> wrote:
|
In reply to this post by Guillermo Polito
On Sun, Aug 5, 2012 at 1:07 PM, Guillermo Polito <[hidden email]> wrote:
Indeed, I saw that later. That only helps to fix the existing ones but it does not solve the problem.
Mariano http://marianopeck.wordpress.com |
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 <[hidden email]> wrote:
|
Free forum by Nabble | Edit this page |