philoskim / debux

A trace-based debugging library for Clojure and ClojureScript.
468 stars 19 forks source link

debux mishandles if-let #8

Closed jeaye closed 6 years ago

jeaye commented 6 years ago

Version: [philoskim/debux "0.4.9"]

Here's the simplest test case:

(dbgn
  (defn foo []
    (if-let [user-json nil]
      ::then
      ::else)))

The error:

Exception in thread "main" clojure.lang.ExceptionInfo: Call to clojure.core/if-let did not conform to spec:
In: [3] val: (:debux-meta.core/else) fails at: [:args] predicate: (cat :bindings (and vector? :clojure.core.specs.alpha/binding) :then any? :else (? any?)),  Extra input
 #:clojure.spec.alpha{:problems [{:path [:args], :reason "Extra input", :pred (clojure.spec.alpha/cat :bindings (clojure.spec.alpha/and clojure.core/vector? :clojure.core.specs.alpha/binding) :then clojure.core/any? :else (clojure.spec.alpha/? clojure.core/any?)), :val (:debux-meta.core/else), :via [], :in [3]}], :spec #object[clojure.spec.alpha$regex_spec_impl$reify__2436 0x56554365 "clojure.spec.alpha$regex_spec_impl$reify__2436@56554365"], :value ([user-json nil] (debux.common.util/insert-blank-line) :debux-meta.core/then :debux-meta.core/else), :args ([user-json nil] (debux.common.util/insert-blank-line) :debux-meta.core/then :debux-meta.core/else)}, compiling:(debux_meta/core.clj:5:1)

EDIT: Looks like if-some fails as well.

philoskim commented 6 years ago

The fixed version 0.4.10 of debux has been released.

Thanks a lot for reporting!!!

jeaye commented 6 years ago

Thanks!