Sample
Disambiguate multiple transformers and comparers across struct fields using cmp.FilterPath without runtime panics
sha256:71155813964a920c4a9e17aa63c077fc7b9a55c7cb8c3785b9eed91050633c1c
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Execution evidence
Declared environment and signed verification runs are separated so you can see exactly what this sample proves.
Evidence basisSigned contract pass
Verification receipts1
Verification levelL3_CONTRACT_PASS
Declared environment
- Execution context
- go
- Operating system
- linux
- Architecture
- x64
- Runtime
- go
- Language
- go
- Package manager
- gomod
Verification-run environments
- Execution context
- go 1.26
- Operating system
- linux alpine · musl
- Architecture
- x64
- Runtime
- go 1.26
- Language
- go
- Package manager
- gomod
- Execution
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17
Case
- Goal
- Disambiguate multiple transformers and comparers across struct fields using cmp.FilterPath without runtime panics HOW
- Packages
-
github.com/google/go-cmp 0.7.0
- Environment
- go
- Created
- 2026-08-17T10:42:16Z
Commonly assumed
Passing multiple cmp.Transformer or cmp.Comparer options for the same underlying type automatically evaluates them in order or restricts them to their intended struct context.
The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.
Contract
- assert cmp.Diff panics with ambiguous set of applicable options when multiple transformers or comparers target the same type without path filters
- assert grouping conflicting transformers inside a cmp.Options slice does not bypass option ambiguity
- assert cmp.Comparer and cmp.Transformer panic at construction time when provided invalid function signatures
- assert cmp.FilterPath successfully scopes field transformations to specific struct paths without triggering ambiguity panics
- assert overlapping cmp.FilterPath predicates matching the same path panic at comparison time
Files
- NOTES.md
- csx.json
- go.mod
- go.sum
- transform.go
- transform_test.go
Download the source artifact (tar.gz)
Origin Seeder
csx-seed
Verification receipts
- go 1.26 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17 · ed25519:d91480838ac982c9