Repository navigation
v1.2.0
This release evolves the analyzer from a method-centric Big-O analysis pipeline into a reusable executable-member analysis foundation and introduces a new family of deterministic structural metrics for C#.
Existing algorithmic-complexity behavior remains conservative, while analysis coverage and maintainability diagnostics are significantly expanded.
What's new
08.1 — Shared executable-member foundation
The analysis pipeline now uses a reusable internal executable-member abstraction instead of being centered exclusively on MethodDeclarationSyntax.
This foundation provides consistent access to:
- Roslyn syntax and symbols;
- executable bodies and expression bodies;
- diagnostic locations;
- analyzer configuration;
- cancellation;
- interprocedural context.
Existing ordinary-method Big-O, recursion, recurrence, known-operation and interprocedural behavior was migrated to this shared foundation without intentionally changing its semantics.
Implemented in #49.
Closes #8.
08.2 — Expanded C# executable-member coverage
Analysis is no longer limited to ordinary methods.
Supported executable roots now include, where applicable:
- ordinary methods;
- constructors and static constructors;
- property accessors;
- event accessors;
- operators;
- conversion operators;
- local functions;
- simple and parenthesized lambdas;
- anonymous methods;
- expression-bodied properties and other supported expression-bodied members.
Nested executable members are analyzed independently so their complexity does not incorrectly inflate the lexical parent.
Unsupported or unsafe scenarios continue to fail conservatively rather than forcing an estimate.
Implemented in #50.
Closes #9.
08.3 — Cyclomatic Complexity and Modified McCabe
This release introduces deterministic Cyclomatic Complexity analysis independently from Big-O estimation.
New diagnostic:
BIG2001— Cyclomatic complexity exceeds configured threshold
New configuration:
complexity_analyzers.maximum_cyclomatic_complexity = 10
complexity_analyzers.cyclomatic_complexity_mode = standard