Skip to content

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 18:08
· 34 commits to main since this release
de38a1b

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