Automating creativity
Preannouncement for a revived code analyzer
Not another style checker. NStatic is a symbolic analyzer for .NET code that models state, calls, paths, assertions, and exceptions so warnings can explain how a problem is reached. Bugs caught before you run anything. NStatic reads your C# code the way a mathematician reads an equation — tracing every execution path symbolically, solving loops to closed form, and surfacing real bugs without false positives.
See the featuresSee how it works
A debugger-like experience for static analysis: error list, symbolic locals, assumptions, call stack, and visual execution paths.
Deep semantic analysis built on symbolic expressions, method summaries, constraints, and algebraic simplification.
A deterministic expression engine that caches, simplifies, and summarizes rather than blindly exploring every path forever.
Most analyzers stop at "this line might fail." NStatic was designed to answer the more useful question: under what symbolic conditions does this line fail, and what did the program know at that point?
Six categories of real bugs. Every finding is backed by a proof. If NStatic flags something, it can show you exactly why — the assumptions it made, the path it traced, the contradiction it found.
Execution Path Visualization
NStatic superimposes colored arrows directly on your source code showing the possible execution flows. Branches, loops, exceptions, and early returns are all visible at a glance — without leaving the editor.
Click any path to see the symbolic state at that point: what values variables can hold, what assumptions have been made, what exceptions could be thrown.
View examples

Loop Analysis
Most analyzers give up on loops or unroll a fixed number of iterations. NStatic solves them to closed form.
A Fibonacci loop becomes a formula involving the golden ratio. An array-filling loop becomes a range assertion. Idempotent and involutive loops are recognized as patterns and eliminated entirely.
This means NStatic can reason about what a loop produces — not just whether it terminates.
How loop solving works →

Interprocedural Analysis
NStatic analyzes call chains up to 11 frames deep — including calls into .NET Framework library code, which it interprets directly from the IL (intermediate language) without needing source.
The call stack panel shows exactly which methods contributed to a finding, with symbolic values at each frame. No more guessing which caller passed the null.

Traditional static analyzers pattern-match against known bug signatures. NStatic reasons about your program mathematically — the difference shows up in what it can find.
| Capability | NStatic | FxCop / Roslyn | Resharper | Spec# / Code Contracts |
|---|---|---|---|---|
| No annotations required | ✓ | ✓ | ✓ | ✗ (requires specs) |
| Interprocedural reasoning | ✓ (11 frames) | Limited | Limited | ✓ |
| Loop analysis | ✓ Closed-form | ✗ | ✗ | Requires invariant |
| .NET Framework IL interpretation | ✓ | ✗ | ✗ | ✗ |
| Execution path visualization | ✓ In-editor overlay | ✗ | ✗ | ✗ |
| Symbolic assumption tracking | ✓ | ✗ | Partial | ✓ |
| Works on existing code | ✓ | ✓ | ✓ | ✗ |


Transparent Reasoning
Every finding comes with a full audit trail. The Assumptions panel shows every condition NStatic has recorded as it traversed your code — what it knows about each variable at each point.
When a bug is flagged, you can trace back through the assumption chain to see exactly which inputs or conditions lead to the problem. The analysis is never a black box.
NStatic lowers C# into a symbolic representation where values, branches, state changes, lambdas, assertions, and calls can be evaluated together.
The original UI explored a simple idea: when analysis finds a problem, let the developer inspect the symbolic runtime that led to it.
Inspect how a warning crosses method boundaries without forcing every caller to be annotated manually.

Add analysis-only assertions, assumptions, and breakpoints while keeping ordinary C# compilation intact.

Join the waitlist and be first to try NStatic when it ships for Visual Studio.
Join the Waitlist