diff --git a/docs/PHASE8_STRATEGY.md b/docs/PHASE8_STRATEGY.md index c2b7874..65ccf7c 100644 --- a/docs/PHASE8_STRATEGY.md +++ b/docs/PHASE8_STRATEGY.md @@ -296,6 +296,8 @@ Crates.io е непреодолимо предимство. Ние се конк - ✅ Basic borrow checker (`@[Checked]`) — готово - ✅ Closures (capture-less anonymous functions) — готово - ✅ Closures with captures — готово +- ✅ `for i in lo..hi` / `for i in lo..=hi` range loops — готово +- 🔄 `for x in collection` (Array/Map/Channel) — чака generic monomorphization - 🎯 Target: Можеш да напишеш `bux` package manager на Bux ### Milestone B: "Използваем за systems programming" (2 месеца) diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 0a6091d..4390ea8 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -173,11 +173,13 @@ for msg in channel { ``` **Implementation Steps:** -1. Parser: extend `for` to accept `for in { ... }` -2. Desugar to while loop using `Iter_HasNext` / `Iter_Next` or trait-based iterator -3. C backend: generate standard while loop with iterator state +1. ✅ Parser: extend `for` to accept `for in { ... }` +2. ✅ Range-based: `for i in lo..hi` and `for i in lo..=hi` — desugared to `while` loop with counter +3. 🔄 Collection-based: `for x in arr` — needs `Iter` desugaring or trait-based iterator + - Blocked by: generic monomorphization in selfhost C backend + - Once unblocked: desugar to `let __iter = Array_Iter(&arr); while Iter_HasNext(&__iter) { let x = Iter_Next(&__iter); body }` -**Complexity:** Medium — needs either trait system enhancement or hardcoded desugaring. +**Complexity:** Medium — range-based done; collection-based needs generic monomorphization first. ---