-
Notifications
You must be signed in to change notification settings - Fork 223
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