From 79cacb28232c5cc1a3c475b5d236b2e3b2a3a5eb Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Mon, 28 Sep 2026 00:38:59 +0200 Subject: [PATCH] Record that the probe's drawn map is never nil --- docs/decisions.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/decisions.md b/docs/decisions.md index 5575527..fe5b4e6 100644 --- a/docs/decisions.md +++ b/docs/decisions.md @@ -689,7 +689,8 @@ though `hasRead` states the same stop rule. Valid while the two differ in where 2026-09-28, larv-review on systems-architect's finding; awaiting approval. Goals 2 and 11: `pathCheck`, `pathCover`, `pathProbe` and `pathDraw` each loop over `stepInto` and `table.route` themselves, and `descend` builds its probe in place, so the probe's -`drawn` map stays on the stack. One walk calling them through an interface or a type +`drawn` map stays on the stack; its caller always builds that map, since no walker +picks a behaviour by a nil field. One walk calling them through an interface or a type parameter leaks the walker and the pins it holds, an allocation per reference read. Valid while Go's escape analysis treats a call through an interface or a type parameter as leaking its receiver.