Things Lucid could do
Last updated at 1:41 pm UTC on 16 January 2006
- Is this message unimorphic? If so, show its code.
- How many implementations does it have? What is the least common ancestor for the implementing classes?
- What classes of object does this method send messages to (remove thestandard libraries from the result set and this is a strong tool for understanding how classes in a program relate)?
- Is this method effect-free? (this requires transitive analysis of methods called. useful for knowing which methods in a class are the movers and shakers (state-changers), and which are utilities)
- Can I by any chance hueristically determine that this expression will/will not terminate correctly? (obviously not something I expect to get precise results on, but if it can catch 50% of DNU bugs statically, thats plenty good enough for me)
I think one of the nicest coding helpers in ST is the unknown selector
warning+correction wizard. I have always wanted it to help more when you forget parenthesis, as in:
String new: 30 match: 'asd'
If we have type-hints, we can easily see that
(String new: 30) match: 'asd'
will terminate, and
String new: (30 match: 'asd')
will not, and propose the correct alternative!
Daniel