Finding panics with Call Graph Analyzer
19 points by icefox
19 points by icefox
For any serious crate that was not developed with minimizing panics in mind, the amount of lints generated by CGA is not really manageable
No kidding. 4950 errors here. --allow-async-panic helps. It sucks that polling a Ready feature panics.
EDIT: god damn it, I might end up spending hours with this fixing potential panics.
EDIT 2: A lot is unchecked arithmetic that shows up as implicit assert which can panic, and unfortunately there's no way to turn this off with the configuration knobs.
Note that this feature does not actually preclude a process from being spawned in any of your crates or dependencies: within Rust it will forever remain possible to link to some external object file or use assembly directly, which CGA can not analyze. Blacklisting with CGA is, however, an interesting capability.
I imagine it'd be a useful extra lint beyond Clippy's more superficial one for catching slip-ups when you want to route all code that can't be moved inside a WebAssembly plugin through cap-std's replacements for std APIs.