Stable type identifiers: a missing piece for crABI and export
Rust Internals [Unofficial]
March 18, 2026
I agree. I made a mistake in my previous answer regarding how a single unique path cannot be identified with multiple copies of the same crate.
As Daniel Fath stated, the combination of the crate identifier, major version and path containing the cargo root type is different. Therefore, those pieces of information must be included in the hash.
Here is an example. The hash for the type “syn@1::Type” will be different than the hash for the type “syn@2::Type”.
The previous example with synv1 as an alias for syn and synv2 as an alias for syn will therefore have different hashes because the crate name and version will be different between the two crates.
Thank you for correcting my mistake. You have clarified this issue.
Discussion in the ATmosphere