Skip to content

refactor(metrics): extract shared max_nesting_depth/1 helper #69

Description

@aspala

Was & Warum

branching.ex:68-77 und line_patterns.ex:67-82 haben zwei verhaltens-identische private Funktionen max_nesting_depth/1. Beide zählen die maximale Klammerverschachtelung via String.graphemes |> Enum.reduce({0, 0}, ...) über die Sets (/[/{ und )/]/}, mit max(depth - 1, 0) als Untergrenze. Nur Variablennamen und Formatierung unterscheiden sich.

Verifiziert: gleiche Klammer-Sets, gleiche Untergrenze, gleiches Reduce-Muster → byte-äquivalentes Verhalten.

Umsetzung

  • Helper in ein geteiltes Modul ziehen (z.B. CodeQA.Math oder neues CodeQA.Metrics.Helpers).
  • Beide Call-Sites darauf umstellen.
  • Bestehende Tests von branching und line_patterns decken die Call-Sites ab — sollten unverändert grün bleiben.

Nutzen

~15 Zeilen Duplikation weg, Klammertiefe-Logik an einer Stelle. Niedriges Risiko.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions