Hi,

I've been working on type-based static analysis in Julia for a while now,
and I just registered TypeCheck.jl today. You can find the source and
documentation here: https://github.com/astrieanna/TypeCheck.jl
(It only works on v0.3)

The package has a couple of functions related to introspecting on
type-inferred method-bodies to decide if they have some undesirable
property. I'd be happy to have more ideas for useful checks to write.

Currently, you can attempt to detect:
1. methods whose return type is  based on the values (not just the types)
of their arguments
2. variables used in loops with unstable types (like Union(Int64,Float64)).
3. potential NoMethodErrors (this one is not as polished as the others, and
has regular false positives).

The README on github has more thorough documentation on how to call them,
and on when they get the right/wrong answer.

I would love feedback on what these checks get right/wrong and suggestions
for other things you'd like to be able to run static checks for.

Best,
  Leah

Reply via email to