Tracking Issue for removing impl const
and ~const
in the standard library · Issue #110395 · rust-lang/rust (original) (raw)
This is a tracking issue for removing impl const
and ~const
in the standard library. This is carried out so that migrating to a new implementation under keyword generics can go more smoothly. See this Zulip thread for discussion around this operation.
For temporary preview of the effects rewrite, add feature(effects)
to your crate code. Most bugs/misbehaviors are known so consider opening a thread on the project-const-traits stream on Zulip before opening an issue.
About tracking issues
Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.
Steps
- Remove unstable features that currently use const traits: Rm const traits in libcore #110393
- Remove logic in the compiler around const traits to allow a better implementation
- Land a better implementation in the compiler (see previous attempt at reimplement ~const Trait bounds via a fourth kind of generic param #101900).
- Effects/keyword generics MVP #113210
- Effects: don't print host param in diagnostics #114203
- correctly lower impl const to bind to host effect param #114545
- Implement fallback for effect param #115727
- treat host effect params as erased in codegen #115817
- Canonicalize effect vars in new solver #115850
- Fallback effects even if types also fallback #115859
- Ensure that ~const trait bounds on associated functions are in const traits or impls #116210
- Hide host effect params from docs #116670
- Duplicate ~const bounds with a non-const one in effects desugaring #116756
- Don't compare host param by name #116870
- Use elaboration to turn ~const bounds into non-const bounds #116872
- Deny providing explicit effect params #117171
- Deny more ~const trait bounds #117817
- Add Span to TraitBoundModifier #118245
- Remove a hack for effects #118246
- effects: Run enforce_context_effects for all method calls #118282
- Fix Deref args when #[const_trait] is enabled #118386
- Remove #[rustc_host], use internal desugaring #118605
- Use default params until effects in desugaring #118608
- Implement new effects desugaring #120639
- Restore unstable features using const traits
### Tasks