-
Notifications
You must be signed in to change notification settings - Fork 13.3k
2018 edition allows ungated access to unstable crates #52489
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
@rust-lang/compiler Can we get some eyes on this, not necessarily to fix but at least to confirm that we believe a fix can be made and landed in time for RC? This is a hard-stop blocker for RC. |
So this is generally harmless (you can't actually get anything from the unstable crate), except for it being a minor dead-code-but-allowed hazard. The culprit appears to be this special-casing: rust/src/librustc_resolve/resolve_imports.rs Lines 635 to 641 in e94df4a
Which loads the crate (producing an error if no crate with that name exists), but doesn't record the resolution. So there's nothing to check - and presumably no way to use that broken import. The part that's missing is this (recording the import resolutions): rust/src/librustc_resolve/resolve_imports.rs Lines 878 to 884 in e94df4a
But the special-casing exits early: rust/src/librustc_resolve/resolve_imports.rs Lines 693 to 694 in e94df4a
Expected minimal diff (between the two lines in the last snippet): let import = self.import_map.entry(directive.id).or_default();
import[TypeNS] = Some(PathResolution::new(binding.def())); |
rustc_resolve: record single-segment extern crate import resolutions. Fixes rust-lang#52489 by recording special-cased single-segment imports for later (e.g. stability) checks. cc @alexcrichton @Mark-Simulacrum @petrochenkov Does this need to be backported?
rustc_resolve: record single-segment extern crate import resolutions. Fixes rust-lang#52489 by recording special-cased single-segment imports for later (e.g. stability) checks. cc @alexcrichton @Mark-Simulacrum @petrochenkov Does this need to be backported?
When compiled with
--edition 2018
this code compiles just fine:That's bad!
The text was updated successfully, but these errors were encountered: