fix: is-operator, try with generic Result, Unwrap exits on panic
ci / build (ubuntu) (push) Has been cancelled
ci / unit + fmt (push) Has been cancelled
ci / examples (push) Has been cancelled
ci / goldens + tools (push) Has been cancelled
ci / apps (push) Has been cancelled
ci / selfhost smoke (push) Has been cancelled
ci / macos smoke (push) Has been cancelled
ci / windows smoke (push) Has been cancelled
ci / CI gate (push) Has been cancelled
selfhost-loop / bootstrap determinism (push) Has been cancelled

Desugar `is` to tag/value equality in bootstrap and selfhost so LIR
no longer drops hIs as false. Resolve monomorphized Result/Option type
names for `?` (_Tag/_Data). Call bux_exit(1) after Unwrap panic messages.
Add is_operator example and document follow-up fixes.
This commit is contained in:
2026-07-28 05:25:11 +03:00
parent 1f8289059a
commit e87985e879
9 changed files with 304 additions and 80 deletions
+11
View File
@@ -34,6 +34,15 @@
---
## Follow-up fixes (post DeepSeek session)
| # | Бъг | Фикс |
|---|-----|------|
| F.1 | `is` → LIR `unhandled hIs` / always false | Desugar to `==` / `.tag ==` in bootstrap + selfhost |
| F.2 | `?` + `Result<T,E>``Result_Tag` C error | Concrete monomorphized typeName + `_Tag`/`_Data` mangling |
| F.3 | `Unwrap` panic continues with garbage | `bux_exit(1)` after panic in Result/Option |
| F.4 | Regression example | `examples/is_operator.bux` |
## Резултат
- **Всички тестове: 0 FAIL, 0 error**
@@ -44,6 +53,8 @@
- Data field достъп (`p.data.First_0` като l-value и r-value)
- Множество конкретни инстанции в един файл
- `Result<T,E>` и `Option<T>` в stdlib
- `is` operator (simple + algebraic enums)
- `?` try operator with monomorphized `Result<T,E>`
## Пример който работи