-
Notifications
You must be signed in to change notification settings - Fork 13.9k
Description
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 Traitbounds via a fourth kind of generic param #101900).- Effects/keyword generics MVP #113210
- Effects: don't print
hostparam in diagnostics #114203 - correctly lower
impl constto 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
~consttrait bounds on associated functions are in const traits or impls #116210 - Hide host effect params from docs #116670
- Duplicate
~constbounds 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
~consttrait bounds #117817 - Add
SpantoTraitBoundModifier#118245 - Remove a hack for effects #118246
- effects: Run
enforce_context_effectsfor all method calls #118282 - Fix
Derefargs 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