With more than 50% of the sign-offs needed in #44524 (comment) to remove the feature entirely (EDIT: And now in FCP), I think it's now fine to start updating the compiler code to stop using the nightly feature.
Here are the crates currently using it:
I've marked this E-easy as it's very mechanical work. If you're interested in helping out:
- Get your dev environment set up so that you can successfully build the compiler, see https://rustc-dev-guide.rust-lang.org/
- Post the crate you'll tackle, to avoid duplicate work. (I suggest picking ~randomly, not going in order.)
- Delete the
#![feature(in_band_lifetimes)] line from the lib.rs file
- Look at the compiler errors, and either
- See that the undeclared lifetime is single-use, and thus replace it with
'_, or
- If it's used multiple times, declare it at the appropriate scope.
- Once it compiles again, review the git diff to ensure it has only lifetime annotation changes.
- EDIT: Remember to run
x.py fmt and x.py test tidy!
- Send a PR cc'ing this issue, and edit your previous post to include the PR number.
If you'd like to see how these PRs end up looking, here's two that I made earlier:
(They're also listed in the checklist above.)
With more than 50% of the sign-offs needed in #44524 (comment) to remove the feature entirely (EDIT: And now in FCP), I think it's now fine to start updating the compiler code to stop using the nightly feature.
Here are the crates currently using it:
in_band_lifetimesfromrustc_borrowck#91879in_band_lifetimesfromrustc_codegen_llvm#91931in_band_lifetimesfromrustc_codegen_ssa#91885in_band_lifetimesfromrustc_const_eval#91887in_band_lifetimesin rustc_data_structures #91580in_band_lifetimesfromrustc_hir#91893in_band_lifetimesfromrustc_incremental#91894in_band_lifetimesfromrustc_infer#91878in_band_lifetimesfromrustc_metadata#91926in_band_lifetimesfromrustc_middle#91984in_band_lifetimesfromrustc_mir_dataflow#91922in_band_lifetimesfromrustc_mir_transform#91638in_band_lifetimesforrustc_monomorphize#91895in_band_lifetimesforrustc_passes#91896in_band_lifetimesfromrustc_privacy#91925in_band_lifetimesfromrustc_query_impl#91923in_band_lifetimesfromrustc_symbol_mangling#91901in_band_lifetimesfromrustc_trait_selection#91904in_band_lifetimesfromrustc_traits#91929in_band_lifetimesfromrustc_typeck#91882in_band_lifetimesfromlibrary\proc_macro#91906I've marked this
E-easyas it's very mechanical work. If you're interested in helping out:#![feature(in_band_lifetimes)]line from thelib.rsfile'_, orx.py fmtandx.py test tidy!If you'd like to see how these PRs end up looking, here's two that I made earlier:
in_band_lifetimesin rustc_data_structures #91580in_band_lifetimesfromrustc_mir_transform#91638(They're also listed in the checklist above.)