borkdude/spartan.spec

Using s/& with predicate breaks babashka

Closed this issue · 1 comments

Example code to break (run with Babashka):

(ns demo
  (:require [babashka.deps :as deps]))
(deps/add-deps
  '{:deps {borkdude/spartan.spec {:git/url "https://github.com/borkdude/spartan.spec"
                                  :sha     "bf4ace4a857c29cbcbb934f6a4035cfabe173ff1"}}})
;; Loading spartan.spec will create a namespace clojure.spec.alpha for compatibility:
(require 'spartan.spec)
(alias 's 'clojure.spec.alpha)

(s/&
  (s/cat :args ::arg-list)
  (fn arg-specs-match-param-count? [{:keys [args gspec]}]
    true))

This outputs:

----- Error --------------------------------------------------------------------
Type:     java.lang.UnsupportedOperationException
Message:  nth not supported on this type: Symbol

Fixed.