Skip to content

Transition the compiler arenas #61838

Closed
Closed

Description

@nikomatsakis

We are in the midst of simplifying the compiler's lifetime system. In general, this means that TyCtxt<'a, 'gcx, 'tcx> is going to become just TyCtxt<'tcx>, where 'tcx represents the lifetime of the entire compilation (we no longer have global and local arenas).

Implementation plan

If your PR is affected

Once #61817 lands, what you want to do is generally rewrite to TyCtxt<'tcx> or -- less often -- TyCtxt<'_>. More specifically, you can convert older code by pattern matching like so:

  • TyCtxt<_, 'tcx, _> becomes TyCtxt<'tcx>
  • TyCtxt<'_, '_, 'tcx> becomes TyCtxt<'tcx>

You can also handle any unused lifetime warnings by replacing the unused lifetime with '_.

Note: when adapting your code, you should never need to introduce a new lifetime, you're only removing them. If you find yourself adding a 'gcx to some impl, that's wrong =)

Activity

  1. added
    C-cleanupCategory: PRs that clean code up or issues documenting cleanup.
    C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFC
    T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.
    on Jun 14, 2019
  2. Mark-Simulacrum commented on Jun 21, 2019

    @Mark-Simulacrum
    Member

    I'm going to close this bug since we've completed all the items on it, feel free to reopen if there's something additional to keep track of here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-cleanupCategory: PRs that clean code up or issues documenting cleanup.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions