Commit ecbd83d5 authored by Robert Goldman's avatar Robert Goldman
Browse files

Fix for launchpad bug 1445638.

When collecting the defsystem-dependencies in
REGISTER-SYSTEM-DEFINITION, throw away NILs, which correspond to systems
not needed because of :FEATURE checks.

Added test case for bug, too.
parent 5bd63e76
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -250,8 +250,9 @@ system names contained using COERCE-NAME. Return the result."
                                   :name name :source-file source-file))
             (component-options
              (remove-plist-keys '(:defsystem-depends-on :class) options))
             (defsystem-dependencies (loop :for spec :in defsystem-depends-on :collect
                                           (resolve-dependency-spec nil spec))))
             (defsystem-dependencies (loop :for spec :in defsystem-depends-on
                                           :when (resolve-dependency-spec nil spec)
                                           :collect :it)))
        ;; cache defsystem-depends-on in canonical form
        (when defsystem-depends-on
          (setf component-options
+4 −1
Original line number Diff line number Diff line
;;-*- Lisp -*-

(in-package :asdf-test)

(def-test-system test-defsystem-depends-on-1
  :defsystem-depends-on (test-asdf/l-file)
  :default-component-class "l-file:cl-source-file.l"
@@ -32,6 +34,7 @@
(defparameter *newsym* (gentemp (symbol-name 'feature) :keyword))

;;; FIXME: the following form triggers bug https://bugs.launchpad.net/asdf/+bug/1445638
#+nil
(eval `(def-test-system test-defsystem-depends-on-4
         :defsystem-depends-on ((:feature ,*newsym* "test-defsystem-depends-on-3"))))

(assert (find-system "test-defsystem-depends-on-4"))