Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Flowistry
Flowistry is an IDE extension that helps developers understand Rust programs. Flowistry uses dataflow analysis to analyze Rust programs at a deeper semantic level than just types can offer. Flowistry's capabilities are:
Backward slicing
A backward slice identifies every piece of code that affects a value of interest. For example, this screenshot shows the slice of input
on line 14:
The value of buffer
affects the value of input
, so stdin.read_buffer(..)
and buffer.clear()
are highlighted. The variable count
does not affect the value of input
, so let mut count = 0
and count += 1
are not highlighted.
Forward slicing
TODO
Installation
Flowistry server
From Cargo
rustup toolchain install nightly -c rust-src,rustc-dev,llvm-tools-preview
cargo +nightly install flowistry
From source
git clone https://github.com/willcrichton/flowistry
cd flowistry
cargo install --path .
VSCode extension
From source
cd ide
npm run vscode:prepublish
ln -s $(pwd) ~/.vscode/extensions/flowistry
Usage
Flowistry contains two components: a program analyzer, and a VSCode extension that bridges the analyzer to a code editor. To try slicing a program, open a Rust project in VSCode and go to a Rust file. Select an expression you want to slice, then press ⌘+⇧+P, type "Slice", and hit enter.