On Aug 18, 2010, at 3:21 PM, Alexandre Bergel wrote:
Hi!
I am analyzing Mondrian in Moose.
Excellent this is the best thing that we can do: using moose to
analyse our own software.
We want to do that for pharo too.
One thing that I am bumping into, is that wrong
dependencies are
inferred whereas I am sure that they do not exist. This is not a
new, we have to type in Smalltalk. For example:
MOEdge>>fromPositions
^ shape fromPositions
#fromPositions is implemented 3 times, by MOAbstractLayout, MOEdge,
and MOLineShape.
In the case of MOEdge>>fromPositions, I am sure that it does not
invoke MOAbstractLayout>>fromPositions
yes but how a analyser can get that?
I guess that everyone analyzing smalltalk code bumped into this
very situation.
My question is how do we do in that case?
One easy solution, is to annotate Mondrian with an adequate pragma:
MOEdge>>fromPositions
<invoke: #fromPositions of: MOLineShape>
^ shape fromPositions
the problem with static information is that it may fast get
desynchronised
I agree. Except if you have a nice PluggableType system that can also
ensure some level of checking, you do not want to have these kind of
annotations in your source code.
Cheers,
Doru
We can decline this pragma into:
<doesNotInvoke: #selector of: AClass>
<invoke: #fromPositions of: #(MOLineShape MOEdge)>
Simon told me Cyrille has worked on this problem. I am currently
trying to use RoelTyper.
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
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev