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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions