Skip to content

Commit

Permalink
Rollup merge of rust-lang#52930 - eddyb:issue-52489, r=cramertj
Browse files Browse the repository at this point in the history
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?
  • Loading branch information
pietroalbini authored Aug 1, 2018
2 parents 110b71a + dbc0cd9 commit 2893bd0
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/librustc_resolve/resolve_imports.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Expand Down
13 changes: 13 additions & 0 deletions src/test/compile-fail/auxiliary/issue-52489.rs
Original file line number Diff line number Diff line change
@@ -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)]
17 changes: 17 additions & 0 deletions src/test/compile-fail/issue-52489.rs
Original file line number Diff line number Diff line change
@@ -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() {}

0 comments on commit 2893bd0

Please sign in to comment.