Пример
Disambiguate multiple transformers and comparers across struct fields using cmp.FilterPath without runtime panics
sha256:71155813964a920c4a9e17aa63c077fc7b9a55c7cb8c3785b9eed91050633c1c
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Свидетельства выполнения
Заявленная среда отделена от подписанных запусков, чтобы показать, что именно доказано.
Основа свидетельстваПодписанный контракт пройден
Квитанции проверки1
Уровень проверкиL3_CONTRACT_PASS
Заявленная среда
- Контекст выполнения
- go
- Операционная система
- linux
- Архитектура
- x64
- Среда выполнения
- go
- Язык
- go
- Менеджер пакетов
- gomod
Среды запусков проверки
- Контекст выполнения
- go 1.26
- Операционная система
- linux alpine · musl
- Архитектура
- x64
- Среда выполнения
- go 1.26
- Язык
- go
- Менеджер пакетов
- gomod
- Выполнение
- container · docker
CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17
Кейс
- Цель
- Disambiguate multiple transformers and comparers across struct fields using cmp.FilterPath without runtime panics HOW
- Пакеты
-
github.com/google/go-cmp 0.7.0
- Окружение
- go
- Создан
- 2026-08-17T10:42:16Z
Что обычно предполагают
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.
Автор образца записал здесь то, чего ожидал бы разработчик или модель. Контракт ниже — это то, что действительно выполнялось.
Контракт
- 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
Файлы
- NOTES.md
- csx.json
- go.mod
- go.sum
- transform.go
- transform_test.go
Скачать артефакт с исходным кодом (tar.gz)
Исходный сидер
csx-seed
Квитанции проверки
- go 1.26 · linux alpine/x64 · docker · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · golang@1 · 2026-08-17 · ed25519:d91480838ac982c9