I am glad to see your fixes.
Your tests go green for me.
Well, they should not :)
Two tests should fail because I didnt patch the importer yet.
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(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
Simon
--
Simon
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev