diff options
| author | Pietro Albini <pietro@pietroalbini.org> | 2018-08-01 21:46:35 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-08-01 21:46:35 +0200 |
| commit | 2893bd0e0c752af8c2238bf18181a4b6991bfd78 (patch) | |
| tree | 4ea34f15d25f0d9fdb28e941be87589a68c2d40a | |
| parent | 110b71a8280c984bf63a01199f57e50eafad0b8f (diff) | |
| parent | dbc0cd94b94e0c97c4be9ef1cfb1b67431cd51e5 (diff) | |
| download | rust-2893bd0e0c752af8c2238bf18181a4b6991bfd78.tar.gz rust-2893bd0e0c752af8c2238bf18181a4b6991bfd78.zip | |
Rollup merge of #52930 - eddyb:issue-52489, r=cramertj
rustc_resolve: record single-segment extern crate import resolutions. Fixes #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?
| -rw-r--r-- | src/librustc_resolve/resolve_imports.rs | 2 | ||||
| -rw-r--r-- | src/test/compile-fail/auxiliary/issue-52489.rs | 13 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-52489.rs | 17 |
3 files changed, 32 insertions, 0 deletions
diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs index 260179de99b..b6ad2f316a0 100644 --- a/src/librustc_resolve/resolve_imports.rs +++ b/src/librustc_resolve/resolve_imports.rs @@ -691,6 +691,8 @@ impl<'a, 'b:'a> ImportResolver<'a, 'b> { expansion: directive.expansion, }); let _ = self.try_define(directive.parent, target, TypeNS, binding); + let import = self.import_map.entry(directive.id).or_default(); + import[TypeNS] = Some(PathResolution::new(binding.def())); return None; } } diff --git a/src/test/compile-fail/auxiliary/issue-52489.rs b/src/test/compile-fail/auxiliary/issue-52489.rs new file mode 100644 index 00000000000..68d1ef8d776 --- /dev/null +++ b/src/test/compile-fail/auxiliary/issue-52489.rs @@ -0,0 +1,13 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#![crate_type = "lib"] +#![unstable(feature = "issue_52489_unstable", issue = "0")] +#![feature(staged_api)] diff --git a/src/test/compile-fail/issue-52489.rs b/src/test/compile-fail/issue-52489.rs new file mode 100644 index 00000000000..c43cc12ca02 --- /dev/null +++ b/src/test/compile-fail/issue-52489.rs @@ -0,0 +1,17 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// edition:2018 +// aux-build:issue-52489.rs + +use issue_52489; +//~^ ERROR use of unstable library feature 'issue_52489_unstable' + +fn main() {} |
