Skip to content

Latest commit

 

History

History
26 lines (19 loc) · 882 Bytes

README.md

File metadata and controls

26 lines (19 loc) · 882 Bytes

NSA

license

Collecting All Your Crate Metadata

This is a lint that never reports anything, but collects crate metadata like the composition of types and the call graph.

This can be useful to determine if

  • a type has inherent mutability
  • a type contains some unsafe other type (e.g. UnsafeCell)
  • a function may panic
  • a function is pure
  • a function is recursive
  • a function allocates memory

For now, this is only a work-in-progress proof of concept. There are some open questions, like

  • How to best store the data (currently this writes to tab-separated files, but the plan is to use Diesel to write to an SQLite database.
  • How to deal with generics
  • How to deal with trait object methods
  • How to run the lint from a build script