Implement Iterate for types that implement CppRangeForIterate (#7294)

This change adds rudimentary support for C++ ranges in Carbon range-for
loops. Since C++ ranges are exposed through `Core.Iterate`, C++ ranges
have the same limitations as Carbon ranges (e.g. can't return
references).

`Iterate.CursorType` now requires `Destroy`, since types that implement
`CppRangeForIterate` can't be used in range-for loops unless their
cursor type can be verifiably destructible.
This commit is contained in:
Christopher Di Bella
2026-06-03 04:51:09 +00:00
committed by GitHub
parent d578e4afe7
commit 61ee4edd9c
6 changed files with 2654 additions and 1074 deletions
File diff suppressed because it is too large Load Diff