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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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