-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
As we re-constify traits, we're gonna have issues when constifying impls across bootstrap versions, since we have to basically duplicate the whole impl since we can't currently cfg
out constness of an impl:
#[cfg(bootstrap)]
impl Foo for Bar {}
#[cfg(not(bootstrap))]
impl const Foo for Bar {}
SOLUTION
So we probably should make it possible to do this, i.e. allow an new attribute like rustc_const_impl
so we can just do:
#[cfg_attr(not(bootstrap), rustc_const_impl)]
impl const Foo for Bar {}
Then after a bootstrap bump, we will just have:
#[rustc_const_impl]
imp Foo for Bar {}
Which can then just trivially be converted to:
impl const Foo for Bar {}
Activity
RalfJung commentedon Oct 25, 2024
I assume this
should be
Also this will only be a problem once, right, when
impl const
re-lands? So we can also "just" wait a cycle before we start mass-adding this again. But we're not patient enough for that. ;)compiler-errors commentedon Oct 25, 2024
Yeah, typo.
Yeah, I guess we could wait one beta bump after we land the effects implementation of the old trait solver (rust-lang/rust#132119) before we start constifying traits in the standard library. I am impatient, but it may end up being fine if we can just land that PR soon.