branch: externals/dash
commit dab0d1c6c5a1e56c3c938fcca13398774f547bd8
Merge: faeb61a c40fa44
Author: Magnar Sveen <[email protected]>
Commit: Magnar Sveen <[email protected]>
Merge pull request #107 from fbergroth/workaround-byte-compiler
Work around byte compiler
---
dash.el | 11 ++++++-----
dev/test-byte-compile.el | 8 ++++++++
run-tests.sh | 9 ++++++++-
3 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/dash.el b/dash.el
index 74dbcab..fd2b779 100644
--- a/dash.el
+++ b/dash.el
@@ -969,7 +969,7 @@ See also: `-table-flat'"
(while (car last-list)
(let ((item (apply fn (-map 'car lists))))
(push item (car re))
- (pop (car lists))
+ (setcar lists (cdar lists)) ;; silence byte compiler
(dash--table-carry lists restore-lists re)))
(nreverse (car (last re)))))
@@ -1500,11 +1500,12 @@ Note: binding is done according to `-let*'."
(declare (debug ((&rest (sexp form)) form body))
(indent 2))
(->> vars-vals
- (-mapcat (-lambda ((pat src)) (dash--match pat src)))
- (-reduce-r-from
- (-lambda ((var val) memo)
+ (--mapcat (dash--match (car it) (cadr it)))
+ (--reduce-r-from
+ (let ((var (car it))
+ (val (cadr it)))
`(let ((,var ,val))
- (if ,var ,memo ,@else)))
+ (if ,var ,acc ,@else)))
then)))
(defmacro -if-let (var-val then &rest else)
diff --git a/dev/test-byte-compile.el b/dev/test-byte-compile.el
new file mode 100644
index 0000000..8d9905e
--- /dev/null
+++ b/dev/test-byte-compile.el
@@ -0,0 +1,8 @@
+(require 'ert)
+
+(ert-deftest dash-byte-compile ()
+ (let* ((cmd "emacs --quick --batch -f batch-byte-compile dash.el")
+ (res (shell-command-to-string cmd))
+ (elc (expand-file-name "dash.elc"))
+ (exp (format "Wrote %s\n" elc)))
+ (should (string= res exp))))
diff --git a/run-tests.sh b/run-tests.sh
index a72e077..ce9a011 100755
--- a/run-tests.sh
+++ b/run-tests.sh
@@ -4,4 +4,11 @@ if [ -z "$EMACS" ] ; then
EMACS="emacs"
fi
-$EMACS -batch -l dev/ert.el -l dash.el -l dash-functional.el -l
dev/examples-to-tests.el -l dev/examples.el -f ert-run-tests-batch-and-exit
+$EMACS -batch \
+ -l dev/ert.el \
+ -l dash.el \
+ -l dash-functional.el \
+ -l dev/examples-to-tests.el \
+ -l dev/examples.el \
+ $([[ $EMACS != "emacs23" ]] && echo -l dev/test-byte-compile.el) \
+ -f ert-run-tests-batch-and-exit