From bcadfd8b71fcf1e36c2e0ea0daddce47b45d28e8 Mon Sep 17 00:00:00 2001 From: Arpad Ryszka Date: Mon, 1 Sep 2025 03:11:04 +0200 Subject: [PATCH] ignore unaddressable fields --- field.go | 4 ++++ field_test.go | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/field.go b/field.go index a0e4e8c..59b0284 100644 --- a/field.go +++ b/field.go @@ -189,6 +189,10 @@ func fieldValues(v reflect.Value) []Field { } vfi := v.Field(i) + if tfi.Anonymous && !vfi.CanAddr() { + continue + } + vfi = unpackValue(vfi, pointer|iface|anytype) switch { case tfi.Anonymous: diff --git a/field_test.go b/field_test.go index 4813ff6..d62e07b 100644 --- a/field_test.go +++ b/field_test.go @@ -252,9 +252,7 @@ func TestField(t *testing.T) { v.Foo = 21 v.Bar = 42 f := bind.FieldValues(v) - if len(f) != 2 || - f[0].Name() != "foo" || f[0].Value() != 21 || - f[1].Name() != "bar" || f[1].Value() != 42 { + if len(f) != 1 || f[0].Name() != "bar" || f[0].Value() != 42 { t.Fatal() } })