3 ms·
This is extremely helpful when hunting for type instabilities. `@code_warntype` and `Cthulhu.@descend` can both show `SomePackage.foo` was inferred as `Any`. B
by celrod 3y ago
This is extremely helpful when hunting for type instabilities.
`@code_warntype` and `Cthulhu.@descend` can both show `SomePackage.foo` was inferred as `Any`.
But why? Cthulhu lets you immediately descend, and see that it's because it calls `SomeOtherPackage.bar`, so you descend, and see...
Five or ten calls in, you finally see a problem you can fix that can motivate a PR.
This is fast to do with with `Cthulhu`. Descending is as easy as pressing `[enter]`, instead of requiring you to construct all the arguments and descend.
Exploring the call graph while doing this gives you some overview of what the code is doing, and you can always look for the initial cause of propagating instabilities, instead of wading through a ton of JET output (but JET is also great).