Approve the four-loops decision

This commit is contained in:
2026-09-28 02:31:26 +02:00
committed by Lillem4n
parent e9bb89f044
commit 2d506e79eb
+8 -8
View File
@@ -686,11 +686,11 @@ though `hasRead` states the same stop rule. Valid while the two differ in where
## The four path walks are four loops ## The four path walks are four loops
2026-09-28, larv-review on systems-architect's finding; awaiting approval. Goals 2 and 2026-09-28, larv-review on systems-architect's finding; approved 2026-09-28 by lilleman.
11: `pathCheck`, `pathCover`, `pathProbe` and `pathDraw` each loop over `stepInto` and Goals 2 and 11: `pathCheck`, `pathCover`, `pathProbe` and `pathDraw` each loop over
`table.route` themselves, and `descend` builds its probe in place, so the probe's `stepInto` and `table.route` themselves, and `descend` builds its probe in place, so the
`drawn` map stays on the stack; its caller always builds that map, so `readRow` never probe's `drawn` map stays on the stack; its caller always builds that map, so `readRow`
tests it for nil. One walk calling them through an interface or a type never tests it for nil. One walk calling them through an interface or a type parameter
parameter leaks the walker and the pins it holds, an allocation per reference read. leaks the walker and the pins it holds, an allocation per reference read. Valid while
Valid while Go's escape analysis treats a call through an interface or a type parameter Go's escape analysis treats a call through an interface or a type parameter as leaking
as leaking its receiver. its receiver.