rustc: replace TyCtxt<'a, 'gcx, 'tcx> with TyCtxt<'gcx, 'tcx>.#61722
Merged
bors merged 7 commits intorust-lang:masterfrom Jun 12, 2019
Merged
rustc: replace TyCtxt<'a, 'gcx, 'tcx> with TyCtxt<'gcx, 'tcx>.#61722bors merged 7 commits intorust-lang:masterfrom
TyCtxt<'a, 'gcx, 'tcx> with TyCtxt<'gcx, 'tcx>.#61722bors merged 7 commits intorust-lang:masterfrom
Conversation
This comment has been minimized.
This comment has been minimized.
63cfc09 to
23755eb
Compare
This comment has been minimized.
This comment has been minimized.
23755eb to
3ae6b4f
Compare
bors
added a commit
that referenced
this pull request
Jun 11, 2019
Add deny(unused_lifetimes) to all the crates that have deny(internal). @Zoxc brought up, regarding #61722, that we don't force the removal of unused lifetimes. Turns out that it's not that bad to enable for compiler crates (I wonder why it's not `warn` by default?). I would've liked to enable `single_use_lifetimes` as well, but #53738 makes it unusable for now. For the `rustfmt` commit, I used rust-lang/rustfmt#1324 (comment), and manually filtered out some noise. r? @oli-obk cc @rust-lang/compiler
1b99bba to
0472b6c
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
8af839a to
18f8668
Compare
18f8668 to
fff08cb
Compare
oli-obk
reviewed
Jun 12, 2019
Contributor
oli-obk
left a comment
There was a problem hiding this comment.
r=me with leftover unnecessary lifetimes removed
| } | ||
|
|
||
| impl<D> TypeRelation<'me, 'gcx, 'tcx> for TypeRelating<'me, 'gcx, 'tcx, D> | ||
| impl<D> TypeRelation<'gcx, 'tcx> for TypeRelating<'me, 'gcx, 'tcx, D> |
Contributor
There was a problem hiding this comment.
The 'me lifetime can be '_ here.
Member
Author
There was a problem hiding this comment.
I believe that'd be handled by the "single-use lifetime" lint, which we haven't turned on yet.
Member
Author
|
@bors rollup=never p=10 (high bitrot probability) |
oli-obk
approved these changes
Jun 12, 2019
Member
Author
|
@bors r=oli-obk |
Collaborator
|
📌 Commit 4c98cb6 has been approved by |
This comment has been minimized.
This comment has been minimized.
Collaborator
bors
added a commit
that referenced
this pull request
Jun 12, 2019
rustc: replace `TyCtxt<'a, 'gcx, 'tcx>` with `TyCtxt<'gcx, 'tcx>`. This first lifetime parameter of `TyCtxt` has been phantom for a while, thanks to @Zoxc, but was never removed, and I'm doing this now in preparation for removing the `'gcx`/`'tcx` split. I wasn't going to do this as a separate step, and instead start converting uses of `TyCtxt` to a single-lifetime alias of it (e.g. `type TyCx<'tcx> = TyCtxt<'tcx, 'tcx, 'tcx>;`) but it turns out (as @Zoxc rightly predicted) that there is far more fallout from not needing a lifetime for the first parameter of `TyCtxt`. That is, going from `TyCtxt<'a, 'gcx, 'tcx>` to `TyCtxt<'tcx, 'gcx, 'tcx>` (the first commit in this PR) has the largest amount of fallout out of all the changes we might make (because it can require removing the `'a` parameter of `struct`s containing `tcx: TyCtxt<'a, ...>`), and is the hardest to automate (because `'a` is used everywhere, not just with `TyCtxt`, unlike, say `'gcx, 'tcx` -> `'tcx`). So I'm submitting this now to get it out of the way and reduce further friction in the future. **EDIT**: for the `rustfmt` commit, I used rust-lang/rustfmt#1324 (comment), and manually filtered out some noise, like in #61735, but unlike that PR, there was also a weird bug to work around. It should be reviewed separately, and dropped if unwanted. cc @rust-lang/compiler r? @nikomatsakis
Collaborator
|
☀️ Test successful - checks-travis, status-appveyor |
3 tasks
Contributor
rust-highfive
added a commit
to rust-lang-nursery/rust-toolstate
that referenced
this pull request
Jun 12, 2019
Tested on commit rust-lang/rust@24ddd16. Direct link to PR: <rust-lang/rust#61722> 💔 rls on linux: test-pass → test-fail (cc @Xanewok, @rust-lang/infra).
This was referenced Jun 12, 2019
bors
added a commit
to rust-lang/rust-clippy
that referenced
this pull request
Jun 12, 2019
Fix wrong lifetime of TyCtxt Rustup rust-lang/rust#61722 changelog: none
bors
added a commit
to rust-lang/rust-clippy
that referenced
this pull request
Jun 12, 2019
Fix wrong lifetime of TyCtxt Rustup rust-lang/rust#61722 changelog: none
bors
added a commit
to rust-lang/rust-clippy
that referenced
this pull request
Jun 12, 2019
Fix wrong lifetime of TyCtxt Rustup rust-lang/rust#61722 changelog: none
Merged
4 tasks
bors
added a commit
that referenced
this pull request
Jun 14, 2019
Unify all uses of 'gcx and 'tcx. This is made possible by @Zoxc landing #57214 (see #57214 (comment) for the decision). A bit of context for the approach: just like #61722, this is *not* how I originally intended to go about this, but @Zoxc and my own experimentation independently resulted in the same conclusion: The interim alias `type TyCx<'tcx> = TyCtxt<'tcx, 'tcx>;` attempt required more work (adding `use`s), even only for handling the `TyCtxt<'tcx, 'tcx>` case and not the general `TyCtxt<'gcx, 'tcx>` one. What this PR is based on is the realization that `'gcx` is a special-enough name that it can be replaced, without caring for context, with `'tcx`, and then repetitions of the name `'tcx` be compacted away. After that, only a small number of error categories remained, each category easily dealt with with either more mass replacements (e.g. `TyCtxt<'tcx, '_>` -> `TyCtxt<'tcx>`) or by hand. For the `rustfmt` commit, I used rust-lang/rustfmt#1324 (comment), and manually filtered out some noise, like in #61735 and #61722, and like the latter, there was also a weird bug to work around. It should be reviewed separately, and dropped if unwanted (in this PR it's pretty significant). cc @rust-lang/compiler r? @nikomatsakis
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This first lifetime parameter of
TyCtxthas been phantom for a while, thanks to @Zoxc, but was never removed, and I'm doing this now in preparation for removing the'gcx/'tcxsplit.I wasn't going to do this as a separate step, and instead start converting uses of
TyCtxtto a single-lifetime alias of it (e.g.type TyCx<'tcx> = TyCtxt<'tcx, 'tcx, 'tcx>;) but it turns out (as @Zoxc rightly predicted) that there is far more fallout from not needing a lifetime for the first parameter ofTyCtxt.That is, going from
TyCtxt<'a, 'gcx, 'tcx>toTyCtxt<'tcx, 'gcx, 'tcx>(the first commit in this PR) has the largest amount of fallout out of all the changes we might make (because it can require removing the'aparameter ofstructs containingtcx: TyCtxt<'a, ...>), and is the hardest to automate (because'ais used everywhere, not just withTyCtxt, unlike, say'gcx, 'tcx->'tcx).So I'm submitting this now to get it out of the way and reduce further friction in the future.
EDIT: for the
rustfmtcommit, I used rust-lang/rustfmt#1324 (comment), and manually filtered out some noise, like in #61735, but unlike that PR, there was also a weird bug to work around.It should be reviewed separately, and dropped if unwanted.
cc @rust-lang/compiler r? @nikomatsakis