emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/dash 9936885 245/439: Merge pull request #51 from Fuco1


From: Phillip Lord
Subject: [elpa] externals/dash 9936885 245/439: Merge pull request #51 from Fuco1/debug-decl
Date: Tue, 04 Aug 2015 20:28:31 +0000

branch: externals/dash
commit 9936885588a2cbcbbfed06ea2d21f3a5b8f5e4f3
Merge: 13e0a35 459322d
Author: Magnar Sveen <address@hidden>
Commit: Magnar Sveen <address@hidden>

    Merge pull request #51 from Fuco1/debug-decl
    
    Debug declarations, better indent & if changed to &rest else
---
 README.md |    8 ++++----
 dash.el   |   28 +++++++++++++++++-----------
 2 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/README.md b/README.md
index 4b80695..9ea6343 100644
--- a/README.md
+++ b/README.md
@@ -142,8 +142,8 @@ To get function combinators:
 
 * [-when-let](#-when-let-var-val-rest-body) `(var-val &rest body)`
 * [-when-let*](#-when-let-vars-vals-rest-body) `(vars-vals &rest body)`
-* [-if-let](#-if-let-var-val-then-optional-else) `(var-val then &optional 
else)`
-* [-if-let*](#-if-let-vars-vals-then-optional-else) `(vars-vals then &optional 
else)`
+* [-if-let](#-if-let-var-val-then-rest-else) `(var-val then &rest else)`
+* [-if-let*](#-if-let-vars-vals-then-rest-else) `(vars-vals then &rest else)`
 
 ### Side-effects
 
@@ -1019,7 +1019,7 @@ If all `vals` evaluate to true, bind them to their 
corresponding
 (-when-let* ((x 5) (y nil) (z 7)) (+ x y z)) ;; => nil
 ```
 
-#### -if-let `(var-val then &optional else)`
+#### -if-let `(var-val then &rest else)`
 
 If `val` evaluates to non-nil, bind it to `var` and do `then`,
 otherwise do `else`. `var-val` should be a (`var` `val`) pair.
@@ -1029,7 +1029,7 @@ otherwise do `else`. `var-val` should be a (`var` `val`) 
pair.
 (--if-let (even? 4) it nil) ;; => t
 ```
 
-#### -if-let* `(vars-vals then &optional else)`
+#### -if-let* `(vars-vals then &rest else)`
 
 If all `vals` evaluate to true, bind them to their corresponding
   `vars` and do `then`, otherwise do `else`. `vars-vals` should be a list
diff --git a/dash.el b/dash.el
index 76fa4d4..aa7c545 100644
--- a/dash.el
+++ b/dash.el
@@ -797,6 +797,7 @@ in in second form, etc."
 (defmacro -when-let (var-val &rest body)
   "If VAL evaluates to non-nil, bind it to VAR and execute body.
 VAR-VAL should be a (VAR VAL) pair."
+  (declare (debug ((symbolp form) body)))
   (let ((var (car var-val))
         (val (cadr var-val)))
     `(let ((,var ,val))
@@ -807,6 +808,7 @@ VAR-VAL should be a (VAR VAL) pair."
   "If all VALS evaluate to true, bind them to their corresponding
   VARS and execute body. VARS-VALS should be a list of (VAR VAL)
   pairs (corresponding to bindings of `let*')."
+  (declare (debug ((&rest (symbolp form)) body)))
   (if (= (length vars-vals) 1)
       `(-when-let ,(car vars-vals)
          ,@body)
@@ -817,42 +819,46 @@ VAR-VAL should be a (VAR VAL) pair."
 (defmacro --when-let (val &rest body)
   "If VAL evaluates to non-nil, bind it to `it' and execute
 body."
+  (declare (debug (form body)))
   `(let ((it ,val))
      (when it
        ,@body)))
 
-(defmacro -if-let (var-val then &optional else)
+(defmacro -if-let (var-val then &rest else)
   "If VAL evaluates to non-nil, bind it to VAR and do THEN,
 otherwise do ELSE. VAR-VAL should be a (VAR VAL) pair."
+  (declare (debug ((symbolp form) form body)))
   (let ((var (car var-val))
         (val (cadr var-val)))
     `(let ((,var ,val))
-       (if ,var ,then ,else))))
+       (if ,var ,then ,@else))))
 
-(defmacro -if-let* (vars-vals then &optional else)
+(defmacro -if-let* (vars-vals then &rest else)
   "If all VALS evaluate to true, bind them to their corresponding
   VARS and do THEN, otherwise do ELSE. VARS-VALS should be a list
   of (VAR VAL) pairs (corresponding to the bindings of `let*')."
+  (declare (debug ((&rest (symbolp form)) form body)))
   (let ((first-pair (car vars-vals))
         (rest (cdr vars-vals)))
     (if (= (length vars-vals) 1)
-        `(-if-let ,first-pair ,then ,else)
+        `(-if-let ,first-pair ,then ,@else)
       `(-if-let ,first-pair
-         (-if-let* ,rest ,then ,else)
-         ,else))))
+           (-if-let* ,rest ,then ,@else)
+         ,@else))))
 
-(defmacro --if-let (val then &optional else)
+(defmacro --if-let (val then &rest else)
   "If VAL evaluates to non-nil, bind it to `it' and do THEN,
 otherwise do ELSE."
+  (declare (debug (form form body)))
   `(let ((it ,val))
-     (if it ,then ,else)))
+     (if it ,then ,@else)))
 
 (put '-when-let 'lisp-indent-function 1)
 (put '-when-let* 'lisp-indent-function 1)
 (put '--when-let 'lisp-indent-function 1)
-(put '-if-let 'lisp-indent-function 1)
-(put '-if-let* 'lisp-indent-function 1)
-(put '--if-let 'lisp-indent-function 1)
+(put '-if-let 'lisp-indent-function 2)
+(put '-if-let* 'lisp-indent-function 2)
+(put '--if-let 'lisp-indent-function 2)
 
 (defun -distinct (list)
   "Return a new list with all duplicates removed.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]