-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Constifying large traits in libstd (i.e. Iterator
)
#15
Comments
This means that implementing |
Well, nothing is breaking on nightly. I don't think I clear when I posted this issue, but I only suggested this for experimentation purposes. By the time we stabilize const traits we'd have to get rid of it. |
I am fairly strongly opposed to that strategy. The attribute exists for use by the panic hooks and should not be used for anything else. |
rustc_do_not_const_check
rust#106541do_not_const_check
fromIterator
methods rust#132368My understanding is that constifying iterator currently required constifying all of its extension methods. That was a lot of work.
Instead, we just slapped
rustc_do_not_const_check
onto all the methods, somewhat leaving us vulnerable to CTFE errors "post-mono" if any of the combinators ended up doing anything non-const.Instead of doing this, we probably could introduce something like
rustc_non_const_trait_method
that forces a specific method to be non-const in a const trait.This means we don't need to work towards constifying all of the combinators all at once. Then when we constify iterator, we can initially slap
#[rustc_non_const_trait_method]
on every combinator, and slowly work to peel them off until the trait is fully constified.The text was updated successfully, but these errors were encountered: