diff --git a/parse-defsystem.lisp b/parse-defsystem.lisp index 1c66dae5314c85590e812bfd23a03d4f1b642e6d..496486c8840565052e34cf284e4d8c58c1b8d0d1 100644 --- a/parse-defsystem.lisp +++ b/parse-defsystem.lisp @@ -141,6 +141,8 @@ (sysdef-error "Ill-formed feature dependency: ~s" dd)) (let ((embedded (parse-dependency-def (third dd)))) `(:feature ,(second dd) ,embedded))) + (feature + (sysdef-error "`feature' has been removed from the dependency spec language of ASDF. Use :feature instead in ~s." dd)) (:require (unless (= (length dd) 2) (sysdef-error "Ill-formed require dependency: ~s" dd)) diff --git a/test/test-cache-for-introspection.script b/test/test-cache-for-introspection.script index 058453b445ee164f7aa0a1b1b96df8d91a558b0e..e866e4c2cab9c370455587ca1f599f909b425b56 100644 --- a/test/test-cache-for-introspection.script +++ b/test/test-cache-for-introspection.script @@ -38,6 +38,9 @@ (:file "file4" :if-feature (:not :common-lisp)))))) + + + (DBG "The weakly-depends-on information is properly cached") (assert (equal '("file3-only") (system-weakly-depends-on (find-system "test-weakly-depends-on")))) (assert (null (system-weakly-depends-on (find-system "test-no-weakly-depends-on")))) @@ -55,3 +58,18 @@ (assert (equalp '((:version "test-asdf/2" "2.1") "file3-only" (:feature :foo (:require "blort"))) (system-depends-on (find-system :test-structured-depends)))) + +(DBG "Test removal of non-orthogonal feature syntax.") +(assert (typep + (catch 'error + (handler-bind ((system-definition-error + #'(lambda (e) + (throw 'error e)))) + (def-test-system :test-structured-depends-with-obsolete-feature-syntax + :depends-on ((:version test-asdf/2 "2.1") :file3-only (feature :foo (:require "blort"))) + :components + ((:file "file2" :depends-on ("foo")) + (:module "foo" :pathname "" + :components ((:file "file1") + (:file "file4" :if-feature (:not :common-lisp)))))))) + 'system-definition-error))