Skip to content

fix(decode): handle unaddressable values in interface decode#35

Merged
xe-nvdk merged 1 commit intov6from
fix/unaddressable-interface-panic
Mar 1, 2026
Merged

fix(decode): handle unaddressable values in interface decode#35
xe-nvdk merged 1 commit intov6from
fix/unaddressable-interface-panic

Conversation

@xe-nvdk
Copy link
Copy Markdown
Member

@xe-nvdk xe-nvdk commented Mar 1, 2026

Summary

Closes #21, closes #29, closes #30, closes #31, closes #32.

Test plan

  • go test -run TestTypes -count=10 — passes all 10 (previously panicked at count=5)
  • go test ./... -v -count=1 — full suite passes
  • go test ./... -short -race — clean
  • go test -run='^$' -bench=. -benchmem -count=3 — zero regression

When decoding into an interface{} that already holds a non-pointer value
type (e.g. int8), v.Elem() returns an unaddressable reflect.Value.
Calling SetInt() on it panics. Fall back to fresh-value decode path
for non-pointer inner values.

Closes #21, closes #29, closes #30, closes #31, closes #32.
@xe-nvdk xe-nvdk merged commit 549ca0d into v6 Mar 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant