Skip to content

Using RoelTyper for a better precision of method invocation #435

@seandenigris

Description

@seandenigris

Originally reported on Google Code with ID 435

Email sent on Aug 18, 2010:

Hi!

I am analyzing Mondrian in Moose. 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

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

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.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Hi Alex

Did you try the different strategies provided for invocations resolution in the importer
wizard? Indeed, Cyrille coded a few strategies to use RoelTyper for better method resolution
(as well as inference of instance variable types). Unfortunately, there are no test
for this so I don't no how reliable it is. I would love to have tests and precision/recall
score for these strategies!

Reported by alexandre.bergel on 2010-08-18 14:26:33

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions