SIGN IN SIGN UP

fix: distinguish collection and element matches when walking input (#1082)

Resolvers and defaults are found by walking the input type and recording a
path to each match. A path to a match on a collection's own type, e.g. a
resolver on `type Coords [2]float64`, was indistinguishable from a path to a
match on its element type, so `everyPB` guessed by kind: collections were
always treated as containers to walk through. Now that fixed arrays are walked
too, that guess turned a resolver on a named array type into a panic, and it
was already wrong when a collection and its element both had resolvers, running
the element's twice and the collection's never.

Record a marker step in the path when descending into a collection's elements
so both cases are exact, and drop the kind-based guess.

Values reached through a map were also visited as copies, which panicked with
`reflect: reflect.Value.Set using unaddressable value` when a default was
applied and silently discarded resolver mutations. Copy the value out, walk it,
then write it back with `SetMapIndex`.
R
Robert Thomas committed
198225eaac0c8be4aaa1962d5a9a075d3a6fd062
Parent: 5961f0a
Committed by GitHub <noreply@github.com> on 7/29/2026, 1:42:03 PM