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