Skip to content

Transition the compiler arenas #61838

Closed
Closed
@nikomatsakis

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 =)

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