class Dry::Schema::Info::SchemaCompiler

def visit_predicate(node, opts = EMPTY_HASH)

Other tags:
    Api: - private
def visit_predicate(node, opts = EMPTY_HASH)
  name, rest = node
  key = opts[:key]
  if name.equal?(:key?)
    keys[rest[0][1]] = {
      required: opts.fetch(:required, true)
    }
  else
    type = PREDICATE_TO_TYPE[name]
    nullable = opts.fetch(:nullable, false)
    assign_type(key, type, nullable) if type
  end
end