feat: add enum path expression support in codegen

- Support ekPath in lowerExpr for enum variants (Color::Red → Color_Red)
- Support module paths (Std::Io::PrintLine → Std_Io_PrintLine)
- Add enums.bux example demonstrating enum usage
- Enums now compile and run correctly
This commit is contained in:
2026-05-30 23:11:03 +03:00
parent 3b03d43dd1
commit 52608d5601
2 changed files with 40 additions and 0 deletions
+6
View File
@@ -127,6 +127,12 @@ proc lowerExpr(ctx: var LowerCtx, expr: Expr): HirNode =
of ekIdent:
return hirVar(expr.exprIdent, typ, loc)
of ekPath:
# Handle enum variants: Color::Red → Color_Red
# or module paths: Std::Io::PrintLine → Std_Io_PrintLine
let mangledName = expr.exprPath.join("_")
return hirVar(mangledName, typ, loc)
of ekSelf:
return hirSelf(typ, loc)