{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/32213","repository_url":"https://api.github.com/repos/rust-lang/rust","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/32213/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/32213/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/32213/events","html_url":"https://github.com/rust-lang/rust/pull/32213","id":140378091,"number":32213,"title":"[WIP] Changes to name resolution rules (shadowable globs, item-like private imports, etc.)","user":{"login":"jseyfried","id":8652869,"avatar_url":"https://avatars.githubusercontent.com/u/8652869?v=3","gravatar_id":"","url":"https://api.github.com/users/jseyfried","html_url":"https://github.com/jseyfried","followers_url":"https://api.github.com/users/jseyfried/followers","following_url":"https://api.github.com/users/jseyfried/following{/other_user}","gists_url":"https://api.github.com/users/jseyfried/gists{/gist_id}","starred_url":"https://api.github.com/users/jseyfried/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jseyfried/subscriptions","organizations_url":"https://api.github.com/users/jseyfried/orgs","repos_url":"https://api.github.com/users/jseyfried/repos","events_url":"https://api.github.com/users/jseyfried/events{/privacy}","received_events_url":"https://api.github.com/users/jseyfried/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"nikomatsakis","id":155238,"avatar_url":"https://avatars.githubusercontent.com/u/155238?v=3","gravatar_id":"","url":"https://api.github.com/users/nikomatsakis","html_url":"https://github.com/nikomatsakis","followers_url":"https://api.github.com/users/nikomatsakis/followers","following_url":"https://api.github.com/users/nikomatsakis/following{/other_user}","gists_url":"https://api.github.com/users/nikomatsakis/gists{/gist_id}","starred_url":"https://api.github.com/users/nikomatsakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikomatsakis/subscriptions","organizations_url":"https://api.github.com/users/nikomatsakis/orgs","repos_url":"https://api.github.com/users/nikomatsakis/repos","events_url":"https://api.github.com/users/nikomatsakis/events{/privacy}","received_events_url":"https://api.github.com/users/nikomatsakis/received_events","type":"User","site_admin":false},"milestone":null,"comments":22,"created_at":"2016-03-12T12:16:27Z","updated_at":"2016-04-17T01:37:48Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/32213","html_url":"https://github.com/rust-lang/rust/pull/32213","diff_url":"https://github.com/rust-lang/rust/pull/32213.diff","patch_url":"https://github.com/rust-lang/rust/pull/32213.patch"},"body":"This implements @nrc's [changes to name resolution rules](https://github.com/nrc/rfcs/blob/name-resolution/text/0000-name-resolution.md#changes-to-name-resolution-rules).\r\n\r\nMore specifically,\r\n - Items and named imports shadow glob imports.\r\n - Multiple globs can import the same name if the name is unused or the imports are shadowed.\r\n - Multiple globs can import the same name if the imports are of the same item (following re-exports).\r\n  - The visibility of such a name is the maximum visibility of the imports.\r\n  - Equivalently, adding a glob import will never reduce the visibility of a name, nor will removing one increase it.\r\n - Non-prelude private imports can be used wherever we currently allow private items to be used.\r\n  - Prelude-imported names are unaffected, i.e. they continue to be usable only in lexical scopes.\r\n - Globs import all visible names, not just public names.\r\n  - Equivalently, glob importing from an ancestor module imports all of the ancestor's names, and glob importing from other modules is unchanged.\r\n  - The visibility of a glob-imported name is the minimum visibility of the glob itself and the name in the imported module. In particular, `pub use super::*` is equivalent to `use`ing the private names and `pub use`ing the public names from `super` (modulo shadowing). See [this comment](https://github.com/rust-lang/rust/issues/31783#issuecomment-186938547) from #31783.\r\n\r\nThis implementation still needs documentation, tests, and more precise diagnostics (most importantly, an error for when an ambiguous name is used), but other than that it is complete."},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/210936341","html_url":"https://github.com/rust-lang/rust/pull/32213#issuecomment-210936341","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/32213","id":210936341,"user":{"login":"bors","id":3372342,"avatar_url":"https://avatars.githubusercontent.com/u/3372342?v=3","gravatar_id":"","url":"https://api.github.com/users/bors","html_url":"https://github.com/bors","followers_url":"https://api.github.com/users/bors/followers","following_url":"https://api.github.com/users/bors/following{/other_user}","gists_url":"https://api.github.com/users/bors/gists{/gist_id}","starred_url":"https://api.github.com/users/bors/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bors/subscriptions","organizations_url":"https://api.github.com/users/bors/orgs","repos_url":"https://api.github.com/users/bors/repos","events_url":"https://api.github.com/users/bors/events{/privacy}","received_events_url":"https://api.github.com/users/bors/received_events","type":"User","site_admin":false},"created_at":"2016-04-17T01:37:48Z","updated_at":"2016-04-17T01:37:48Z","body":":umbrella: The latest upstream changes (presumably #32875) made this pull request unmergeable. Please resolve the merge conflicts."}}