Skip to content

resolve: Exclude inaccessible names from single imports#35063

Merged
bors merged 2 commits into
rust-lang:masterfrom
jseyfried:avoid_importing_inaccessible_names
Jul 30, 2016
Merged

resolve: Exclude inaccessible names from single imports#35063
bors merged 2 commits into
rust-lang:masterfrom
jseyfried:avoid_importing_inaccessible_names

Conversation

@jseyfried

@jseyfried jseyfried commented Jul 27, 2016

Copy link
Copy Markdown
Contributor

If a single import resolves to an inaccessible name in some but not all namespaces, avoid importing the name in the inaccessible namespaces (per rust-lang/rfcs#1560, cc #35120).

Currently, the inaccessible namespaces are imported but cause a privacy error when used.

r? @nrc

@jseyfried

jseyfried commented Jul 27, 2016

Copy link
Copy Markdown
Contributor Author

This is a minor, backwards compatible change that I think would be nice to land outside the item_like_imports feature gate.

Apart from diagnostics, the only observable effect of this PR is to allow, for example:

mod foo {
    pub fn bar() {}
    mod bar {}
}
fn main() {
    use foo::bar; // Before this PR, the inaccessible module `foo::bar` was imported,
    mod bar {} // so this was a duplicate error.
}

…ll namespaces,

avoid importing the name in the inaccessible namespaces.

Currently, the inaccessible namespaces are imported but cause a privacy error when used.
@jseyfried jseyfried force-pushed the avoid_importing_inaccessible_names branch from 66bd04d to 8205691 Compare July 27, 2016 05:17
@nrc

nrc commented Jul 28, 2016

Copy link
Copy Markdown
Member

@bors: r+

@bors

bors commented Jul 28, 2016

Copy link
Copy Markdown
Collaborator

📌 Commit 8205691 has been approved by nrc

@alexcrichton

Copy link
Copy Markdown
Member

@bors: rollup

assuming this isn't very platform-specific and green travis means it's good to go whenever

steveklabnik added a commit to steveklabnik/rust that referenced this pull request Jul 30, 2016
…ble_names, r=nrc

resolve: Exclude inaccessible names from single imports

If a single import resolves to an inaccessible name in some but not all namespaces, avoid importing the name in the inaccessible namespaces.

Currently, the inaccessible namespaces are imported but cause a privacy error when used.

r? @nrc
Manishearth added a commit to Manishearth/rust that referenced this pull request Jul 30, 2016
…ble_names, r=nrc

resolve: Exclude inaccessible names from single imports

If a single import resolves to an inaccessible name in some but not all namespaces, avoid importing the name in the inaccessible namespaces.

Currently, the inaccessible namespaces are imported but cause a privacy error when used.

r? @nrc
bors added a commit that referenced this pull request Jul 30, 2016
Rollup of 8 pull requests

- Successful merges: #35049, #35058, #35063, #35080, #35090, #35094, #35104, #35106
- Failed merges:
@bors bors merged commit 8205691 into rust-lang:master Jul 30, 2016
@jseyfried jseyfried deleted the avoid_importing_inaccessible_names branch October 16, 2016 09:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants