]> code.delx.au - gnu-emacs-elpa/blobdiff - packages/async/async-bytecomp.el
Parse also `package-alist` when getting dependencies (#58).
[gnu-emacs-elpa] / packages / async / async-bytecomp.el
index a2885afcbf06f67a864bfc0c058fa01d49ec74ee..81e526b5d30cc34f7497e64235fbe52ddca671a6 100644 (file)
@@ -110,10 +110,15 @@ All *.elc files are systematically deleted before proceeding."
 (defun async-bytecomp--get-package-deps (pkg &optional only)
   ;; Same as `package--get-deps' but parse instead `package-archive-contents'
   ;; because PKG is not already installed and not present in `package-alist'.
-  (let* ((pkg-desc (cadr (assq pkg package-archive-contents)))
+  ;; However fallback to `package-alist' in case PKG no more present
+  ;; in `package-archive-contents' due to modification to `package-archives'.
+  ;; See issue #58.
+  (let* ((pkg-desc (cadr (or (assq pkg package-archive-contents)
+                             (assq pkg package-alist))))
          (direct-deps (cl-loop for p in (package-desc-reqs pkg-desc)
                                for name = (car p)
-                               when (assq name package-archive-contents)
+                               when (or (assq name package-archive-contents)
+                                        (assq name package-alist))
                                collect name))
          (indirect-deps (unless (eq only 'direct)
                           (delete-dups