Description
This is a tracking issue for supporting unsized types in const generics.
The feature gate for the issue is #![feature(unsized_const_params)]
.
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.
Discussion comments will get marked as off-topic or deleted.
Repeated discussions on the tracking issue may lead to the tracking issue getting locked.
Steps
Most of the work here will be coordinated in the #project-const-generics
stream on zulip.
- Experiment with supporting
{ *"hi" }
as a const argument toconst N: str
- Resolve How should const generics with references work around pointer identity and padding? #120961 somehow (e.g. by forbidding references if the previous step works out)
- Author an RFC for the feature
- Adjust documentation (see instructions on rustc-dev-guide)
- Stabilization PR (see instructions on rustc-dev-guide) merges the
ConstParamTy
andUnsizedConstParamTy
traits
Unresolved Questions
- Can we forbid references and support
!Sized
types some other way
Implementation history
- Feature was split out of
adt_const_params
in Forbid borrows and unsized types from being used as the type of a const generic underadt_const_params
#127722
cc @rust-lang/project-const-generics