mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-30 06:43:20 +03:00
58f03f5fe5
constify `Iterator`, take IV Like its predecessors (rust-lang/rust#92433, rust-lang/rust#102225, rust-lang/rust#106541), this PR allows one to make `Iterator` implementations `const`, and thus enables the ability to have `for` loops in `const` contexts. I've also included constifying `Option as IntoIterator`, `option::IntoIter as Iterator` as a minimal dogfooding example. But unlike its predecessors, it uses a new attribute (not unsound anymore!) that prevents any `Iterator` extension methods from being called. This is intentionally made minimal for an initial approval, the fun stuff like `.fold`, `Range as Iterator` could be done later. cc @rust-lang/wg-const-eval, cc @oli-obk to review the compiler parts cc rust-lang/rust#92476
For more information about how rustc works, see the rustc dev guide.