packed_simd
0.3.3 is an edition 2018 crate. When I build it as part of a normal crates.io-backed dependency graph, it builds fine using nightly Rust. It also builds fine if I make a local git clone and cargo build
that. If I use cargo vendor
to vendor it into a locally-vendored dependency graph but cd
into its directory and cargo build
it from there, it builds fine.
However, when I build the whole vendored dependency graph, the vendored packed_simd
crate fails to build. The errors are related to module references. If I remove edition = "2018"
from packed_simd
's Cargo.toml
when building it individually, I get the same errors plus errors about locating cfg_if
.
This suggests that when packed_simd
is built as part of a vendored dependency graph, somehow the module path resolution goes into the 2015 mode.
Yet, when watching the process list, I see that packed_simd
is built with the expected nightly rustc
binary and --edition=2018
is passed as part of the invocation.
The dependency tree uses a workspace where the vendored crates are "excluded".
There are a couple of existing edition 2018 crates that use 2018-style module paths (cranelift-*
crates).
Is this kind of unwanted 2015-mode module path processing in a vendored 2018 crate a known failure mode? How should I go about debugging this?