which suggests FILE-TYPE, not COMPONENT-TYPE is The Right Thing. Also, what the heck is the return type of this? I see the following:
(defmethod source-file-type ((component parent-component) (system parent-component)) :directory)
which suggests that it's something like (or string (eql :directory)). Ugh. Shouldn't asking for the file-type of a PARENT-COMPONENT simply be an error?
The correct type should be (or null string (eql :directory))
I believe :directory is how we end up with pathnames for parent components becoming directory pathnames, as in (:module "foo" :pathname "bar" ...) having a relative pathname #p"bar/" on Unix.
Also note that NIL doesn't mean "no type" as in (make-pathname :type nil ...), but rather means "don't *add* a type to what the user specifies", as in (parse-unix-namestring foo :type nil) parse-unix-namestring is what handles this :type argument, and also supports :directory. It replaces and generalizes what in latter versions of ASDF 2 (after 2.013) was called COERCE-PATHNAME.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Democracy is a religion too. It's the worship of jackals by jackasses. — H. L. Mencken