Yesterday I posted a long, long description of a problem I encountered with Cargo. I stayed at the level of "why are multiple versions of this package getting pulled-in, when there is clearly no constraint forcing it?" But there's a different problem, that I don't know how to debug at all. That post is in moderation (first post, new user, big post, gosh, maybe he's spamming, let's have a moderator review -- makes perfect sense grin)
In my scenario, a crate QT depended on pyo3, which depended on hashbrown. pyo3's version-constraint on hashbrown is pretty relaxed, so if QT specifies a strict version constraint on hashbrown, you'd tink that that would force pyo3 to select that version. But that's not what happend.
But this brings up a different problem. QT has code that uses hashbrown. That code fails all sorts of type-checking with pyo3 and hashbrown. The code is wrappered in macros, so just staring at it doesn't help much. I'd like to do two things:
-
extract a list of commands I can run on the commandline to reproduce the build process
-
and from a source-file that contains macro instances, extract the expanded source code, so I can compile that and see the compile errors.
I know there's a command "cargo expand" for #2, but searching Google, I've found no way to do #1.