Hi Roel!
I hope you're fine. I tried to use RoelTyper to have more accurate method invocations in Moose. I use Mondrian as my case study.
I tried in a workspace (TypeCollector typeInstvar: #shape ofClass: MOGraphElement ) types => an OrderedCollection(SmallInteger)
This is surprising since I expect #shape to reference to an instance of a subtype of MOShape.
I did:
(TypeCollector typeInstvar: #shape ofClass: MOGraphElement ) interface => an IdentitySet(#shapeBoundsAt:ifPresent: #computeBoundsFor: #isCached #copy #defaultBounds #absoluteBoundsFor: #extentFor: #apply:bounds: #isFormsShape)
#shapeBoundsAt:ifPresent:, #computeBoundsFor: are defined in MOShape and not SmallInteger. I probably miss something obvious here...
Cheers, Alexandre