{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/44660","repository_url":"https://api.github.com/repos/rust-lang/rust","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/44660/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/44660/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/44660/events","html_url":"https://github.com/rust-lang/rust/issues/44660","id":258324477,"node_id":"MDU6SXNzdWUyNTgzMjQ0Nzc=","number":44660,"title":"Tracking issue for RFC 2126: Clarify and streamline paths and visibility","user":{"login":"aturon","id":709807,"node_id":"MDQ6VXNlcjcwOTgwNw==","avatar_url":"https://avatars2.githubusercontent.com/u/709807?v=4","gravatar_id":"","url":"https://api.github.com/users/aturon","html_url":"https://github.com/aturon","followers_url":"https://api.github.com/users/aturon/followers","following_url":"https://api.github.com/users/aturon/following{/other_user}","gists_url":"https://api.github.com/users/aturon/gists{/gist_id}","starred_url":"https://api.github.com/users/aturon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aturon/subscriptions","organizations_url":"https://api.github.com/users/aturon/orgs","repos_url":"https://api.github.com/users/aturon/repos","events_url":"https://api.github.com/users/aturon/events{/privacy}","received_events_url":"https://api.github.com/users/aturon/received_events","type":"User","site_admin":false},"labels":[{"id":89436934,"node_id":"MDU6TGFiZWw4OTQzNjkzNA==","url":"https://api.github.com/repos/rust-lang/rust/labels/B-RFC-approved","name":"B-RFC-approved","color":"d304cb","default":false},{"id":650846969,"node_id":"MDU6TGFiZWw2NTA4NDY5Njk=","url":"https://api.github.com/repos/rust-lang/rust/labels/C-tracking-issue","name":"C-tracking-issue","color":"f5f1fd","default":false},{"id":693664741,"node_id":"MDU6TGFiZWw2OTM2NjQ3NDE=","url":"https://api.github.com/repos/rust-lang/rust/labels/E-needs-mentor","name":"E-needs-mentor","color":"02e10c","default":false},{"id":211668019,"node_id":"MDU6TGFiZWwyMTE2NjgwMTk=","url":"https://api.github.com/repos/rust-lang/rust/labels/T-lang","name":"T-lang","color":"bfd4f2","default":false},{"id":693665390,"node_id":"MDU6TGFiZWw2OTM2NjUzOTA=","url":"https://api.github.com/repos/rust-lang/rust/labels/WG-compiler-front","name":"WG-compiler-front","color":"c2e0c6","default":false}],"state":"closed","locked":false,"assignee":{"login":"Manishearth","id":1617736,"node_id":"MDQ6VXNlcjE2MTc3MzY=","avatar_url":"https://avatars2.githubusercontent.com/u/1617736?v=4","gravatar_id":"","url":"https://api.github.com/users/Manishearth","html_url":"https://github.com/Manishearth","followers_url":"https://api.github.com/users/Manishearth/followers","following_url":"https://api.github.com/users/Manishearth/following{/other_user}","gists_url":"https://api.github.com/users/Manishearth/gists{/gist_id}","starred_url":"https://api.github.com/users/Manishearth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Manishearth/subscriptions","organizations_url":"https://api.github.com/users/Manishearth/orgs","repos_url":"https://api.github.com/users/Manishearth/repos","events_url":"https://api.github.com/users/Manishearth/events{/privacy}","received_events_url":"https://api.github.com/users/Manishearth/received_events","type":"User","site_admin":false},"assignees":[{"login":"Manishearth","id":1617736,"node_id":"MDQ6VXNlcjE2MTc3MzY=","avatar_url":"https://avatars2.githubusercontent.com/u/1617736?v=4","gravatar_id":"","url":"https://api.github.com/users/Manishearth","html_url":"https://github.com/Manishearth","followers_url":"https://api.github.com/users/Manishearth/followers","following_url":"https://api.github.com/users/Manishearth/following{/other_user}","gists_url":"https://api.github.com/users/Manishearth/gists{/gist_id}","starred_url":"https://api.github.com/users/Manishearth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Manishearth/subscriptions","organizations_url":"https://api.github.com/users/Manishearth/orgs","repos_url":"https://api.github.com/users/Manishearth/repos","events_url":"https://api.github.com/users/Manishearth/events{/privacy}","received_events_url":"https://api.github.com/users/Manishearth/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/rust-lang/rust/milestones/54","html_url":"https://github.com/rust-lang/rust/milestone/54","labels_url":"https://api.github.com/repos/rust-lang/rust/milestones/54/labels","id":3463305,"node_id":"MDk6TWlsZXN0b25lMzQ2MzMwNQ==","number":54,"title":"Rust 2018 RC","description":"See https://internals.rust-lang.org/t/rust-2018-the-home-stretch/7810","creator":{"login":"nikomatsakis","id":155238,"node_id":"MDQ6VXNlcjE1NTIzOA==","avatar_url":"https://avatars0.githubusercontent.com/u/155238?v=4","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},"open_issues":4,"closed_issues":62,"state":"open","created_at":"2018-06-29T18:51:29Z","updated_at":"2018-09-18T16:00:51Z","due_on":"2018-09-13T07:00:00Z","closed_at":null},"comments":114,"created_at":"2017-09-17T18:52:57Z","updated_at":"2018-09-20T20:39:17Z","closed_at":"2018-08-06T21:18:19Z","author_association":"MEMBER","body":"This is a tracking issue for the RFC \"Clarify and streamline paths and visibility\" (rust-lang/rfcs#2126).\r\n\r\n**Steps:**\r\n\r\n- [ ] Implement the RFC. The various implementation steps are broken out into subissues (or will be, in some cases).\r\n    - [x] permit `foo.rs` or `foo/mod.rs` to support submodules like `foo/bar.rs` #45385 \r\n        - ([mentoring instructions here](https://github.com/rust-lang/rust/issues/45385#issuecomment-337950379))\r\n    - [x] introduce `crate` as a visibility modifier #45388\r\n        - ([mentoring instructions here](https://github.com/rust-lang/rust/issues/45388))\r\n    - [x] allow `crate` to begin an absolute path https://github.com/rust-lang/rust/issues/45477\r\n    - [x] add a lint for `pub` items that are not visible from crate root https://github.com/rust-lang/rust/issues/45521\r\n- [ ] Some implementation issues are blocked on permitting `crate` to begin an absolute path. Neither of these items would take effect unless we are using that extension:\r\n    - [x] add a lint for absolute paths that do not begin with `crate` (https://github.com/rust-lang/rust/issues/48722)\r\n    - [ ] allow eliding `extern crate` when feature gate is given\r\n        - Rationale for delaying: if we require all local paths to begin with crate, we don't need to worry about fallback\r\n        - This feature also depends on [Allowing renaming of crates in the dependencies section](https://github.com/rust-lang/cargo/issues/1311)\r\n        - [x] Add epoch lint for this https://github.com/rust-lang/rust/issues/48719\r\n- [ ] Adjust documentation ([see instructions on forge][doc-guide])\r\n- [ ] Stabilization PR ([see instructions on forge][stabilization-guide])\r\n\r\n[stabilization-guide]: https://forge.rust-lang.org/stabilization-guide.html\r\n[doc-guide]: https://forge.rust-lang.org/stabilization-guide.html#updating-documentation\r\n\r\n**Unresolved questions:**\r\n\r\n- How should we approach migration? Via a fallback, as proposed, or via epochs? It is probably best to make this determination with more experience, e.g. after we have a `rustfix` tool in hand.\r\n\r\n- The final syntax for absolute paths; there's more bikeshedding to be done here in a context where we can actually try out the various options. In particular, there are some real advantages to having *both* `crate::` and `extern::` paths, but ideally we could do it in a more succinct way.\r\n    - Currently, we accept `::crate::foo` only. However, we also parse `struct Foo(crate ::foo)` as an illegal path, rather than treating `crate` as a visibility modifier. [@petrochenkov describes some of the reasoning in this comment.](https://github.com/rust-lang/rust/issues/45477#issuecomment-340595412)\r\n  "},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/423325246","html_url":"https://github.com/rust-lang/rust/issues/44660#issuecomment-423325246","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/44660","id":423325246,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMzMyNTI0Ng==","user":{"login":"petrochenkov","id":5751617,"node_id":"MDQ6VXNlcjU3NTE2MTc=","avatar_url":"https://avatars2.githubusercontent.com/u/5751617?v=4","gravatar_id":"","url":"https://api.github.com/users/petrochenkov","html_url":"https://github.com/petrochenkov","followers_url":"https://api.github.com/users/petrochenkov/followers","following_url":"https://api.github.com/users/petrochenkov/following{/other_user}","gists_url":"https://api.github.com/users/petrochenkov/gists{/gist_id}","starred_url":"https://api.github.com/users/petrochenkov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petrochenkov/subscriptions","organizations_url":"https://api.github.com/users/petrochenkov/orgs","repos_url":"https://api.github.com/users/petrochenkov/repos","events_url":"https://api.github.com/users/petrochenkov/events{/privacy}","received_events_url":"https://api.github.com/users/petrochenkov/received_events","type":"User","site_admin":false},"created_at":"2018-09-20T20:39:17Z","updated_at":"2018-09-20T20:39:17Z","author_association":"CONTRIBUTOR","body":"@Centril \r\n>can you refresh my memory on what the \"extern prelude\" was?\r\n\r\nIn general, \"prelude\" is currently used for all names that are in scope for the whole crate and not attached to a specific module. (There are a lot of those actually.)"}}
{"actor":{"display_login":"petrochenkov"}}