Flux : corrections de relecture — le « +N » d'une écriture ne recompte plus tout le corps

Chaque événement de frappe (un par ligne) appelait bodyLineCount sur le corps
ENTIER pour remplir body_lines : un reste de coût quadratique, léger mais
inutile, puisque argPreview tient déjà le compte des sauts de ligne.

- argPreview.lineCount : même règle que bodyLineCount (saut de ligne final
  sans ligne de plus), en temps constant.
- Le test de décodage par morceaux vérifie l'égalité avec bodyLineCount à
  chaque préfixe (fuzz compris).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
MichaelandClaude Opus 5.5 committed 2026-10-04 01:54:19 +02:00
1 parent f1f6cbe4ea
commit 3dff7e0e04
2 files changed
+19 -1

No files matched your search

+3
View File
@@ -54,6 +54,9 @@ func checkArgPreview(t *testing.T, args, key string, chunks []string) {
if n := strings.Count(a.value(), "\n"); n != a.lines {
t.Fatalf("lines=%d, la valeur en compte %d", a.lines, n)
}
if n := bodyLineCount(a.value()); n != a.lineCount() {
t.Fatalf("lineCount=%d, bodyLineCount=%d (valeur %q)", a.lineCount(), n, a.value())
}
}
}