I still don't think that this is the right logic. This `out_filename` field is probably outdated and should be removed. You say that everything will get canonicalized to the same filename when using the `.d` extension, but that is not quite true. On windows DLLs don't have a `lib` prefix, but rlibs still do.

This is getting confusing enough that I'm not sure that it's a good idea to output the dependency file based on the filename of what's being generated. I think that at least gcc uses the same name as the source file as far as I know. Why not just have `--dep-info` take an optional argument? By default it uses the crate file with the `.d` extension and then you can specify another one if you really want?