Tensegritics/ClojureDart

Port new 1.11 behavior for associative varargs

Ouverte

#109 ouverte le 13 juin 2022

 (1 commentaire) (0 réaction) (0 personne assignée)Clojure (115 forks)batch import
help wanted

Métriques du dépôt

Stars
 (1 618 étoiles)
Métriques de merge PR
 (Merge moyen 8j) (2 PRs mergées en 30 j)

Description

I think this is related to issue #96.

Calling a variadic function that contains argument destructuring fails with the following exception: Unhandled Exception: Invalid argument(s): Index out of bounds

Example:

(defn one [& {:keys [a b]
              :or {a "a" b "b"}}]
  (dart:core/print (str a b)))

  (one) ;=> ab
  (one nil) ;=> ...Index out of bounds...
  (one {}) ;=> ...Index out of bounds...
  (one {:a "x"}) ;=> ...Index out of bounds...
  (one {:a "x" :b "y"}) ;=> ...Index out of bounds...


(defn two [a & {:keys [b c]
                :or {b "b" c "c"}}]
  (dart:core/print (str a b c)))
  
  (two "x") ;=> xbc
  (two "x" nil) ;=> ...Index out of bounds...
  (two "x" {}) ;=> ...Index out of bounds...
  (two "x" {:b "y"}) ;=> ...Index out of bounds...
  (two "x" {:b "y" :c "z"}) ;=> ...Index out of bounds...

Guide contributeur