Hi,
On 19 Aug 2010, at 11:27, Stéphane Ducasse wrote:
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@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- www.tudorgirba.com
"Obvious things are difficult to teach."