I am glad to see your fixes. Your tests go green for me.
Cheers, Alexandre
On 28 May 2009, at 11:53, Simon Denier wrote:
On 27 mai 09, at 15:24, Simon Denier wrote:
In the near time, two areas which need improvement:
- the way the importer currently works, it takes into account class
extensions made by other packages to explicitly imported packages, but does not import class extension made by the imported packages to external packages.
- refine the Famix-Smalltalk API to easily access class extension
from/to FamixClass and FamixPackage (this is partially done, but only as a bi-relation between packages and extended classes, we dont have the methods)
Did that today (not the importer, just the API) and updated the tests in consequence.
As ref, here is the API in PhaMoose/Famix3
FAMIXMethod #isExtension "true if the method is a class extension (parentPackage retrieves the package which makes the extension)"
FAMIXClass #isExtended true is the class is extended by other packages, i.e. has some class extensions #extendedInPackages returns the packages which extend this class #extendedMethods returns the methods which are extensions of this class #localMethods, #definedMethods (alias, deprecated) returns locally defined methods, i.e. defined in the same package as the class
FAMIXClass#methods returns all methods defined in a class, including class extensions.
FAMIXPackage #extensionMethods returns the class extensions made by this package #localMethods returns methods locally defined in the package #extensionClasses returns classes extended by THIS package #localClasses, #definedClasses (alias, deprecated) returns classes defined in the package (including extenDED classes) #extendedClasses returns local classes extended by OTHER packages
FAMIXPackage#classes returns localClasses FAMIXPackage#methods returns localMethods and extensionMethods
I hope it clears a few things. I tried to get a concise yet consistent name format, but you are welcome to comment. In particular, some confusion is possible between #extensionClasses and #extendedClasses
On 27 mai 09, at 13:19, Alexandre Bergel wrote:
I understand your point
FAMIXClass subclass: #FAMIXClassExtension instanceVariableNames: '' classVariableNames: ''
poolDictionaries: '' category: 'Famix-Core'
I fear this may be problematic. In the Pharo version of Moose (I haven't checked for VW), FAMIXClass is referenced in a number of places. For example:
- FAMIXInvocation>>isAPotentialIncomingInvocationFor: contains
'invoRVar class = FAMIXClass'
- FAMIXClass>>isADirectSubclassOf: contains 'aClass class =
FAMIXClass'
This suggest that instances of FAMIXClassExtension will probably not be have the same effect when a FAMIXClass is expected. It does not seem to be a big deal though. But why FAMIXClass>>isExtended is not enough?
Cheers, Alexandre
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- Simon
-- Simon
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev