fix: pointer type names in let/cast/params (String*), cast uses actual target type

This commit is contained in:
2026-05-31 21:01:39 +03:00
parent 1495b24a9e
commit e2c1a21059
4 changed files with 56 additions and 6 deletions
+5 -1
View File
@@ -222,7 +222,11 @@ func CBE_EmitExpr(cbe: *CEmitter, node: *HirNode) {
// Cast
if kind == hCast {
StringBuilder_Append(&cbe.sb, "((");
StringBuilder_Append(&cbe.sb, CBackend_TypeToC(tyPointer));
if !String_Eq(node.typeName, "") {
StringBuilder_Append(&cbe.sb, node.typeName);
} else {
StringBuilder_Append(&cbe.sb, CBackend_TypeToC(node.typeKind));
}
StringBuilder_Append(&cbe.sb, ")");
CBE_EmitExpr(cbe, node.child1);
StringBuilder_Append(&cbe.sb, ")");