-
Notifications
You must be signed in to change notification settings - Fork 222
Open
Labels
bugSomething isn't workingSomething isn't working
Description
If schemas with registries are merged with :merge
, the dereferenced schema often cannot be round-tripped.
Notice the following schema is missing a ::z
binding so is no longer well-formed.
(-> (m/deref
[:merge
[:map {:registry {::y int?}}
[:y ::y]]
[:map {:registry {::z boolean?}}
[:z ::z]]]
options)
m/form)
=>
[:map {:registry {::y boolean?}}
[:y ::y]
[:z ::z]]
We might be able to fix this by merging the registries, but something else is needed if the registries both define the same names.
For example, here the schema for :y
is being captured by the wrong scope, and becomes [:y boolean?]
instead of [:y int?]
.
(-> (m/deref
[:merge
[:map {:registry {::y int?}}
[:y ::y]]
[:map {:registry {::y boolean?}}
[:z ::y]]]
options)
m/form)
=>
[:map {:registry {::y boolean?}}
[:y ::y]
[:z ::y]]
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Type
Projects
Status
👍 Could do