wcc: mangle private decls as <module>.<name> via // MODULE: marker

This commit is contained in:
2026-05-11 15:16:22 +09:00
parent d7036be0e5
commit 895f221b6c
5 changed files with 423 additions and 39 deletions

View File

@@ -794,6 +794,7 @@ fn parsedef(p: *parser, exported: i32) *node = {
let pc: i32 = p.cur_col;
advance(p); // past `def`
let n: *node = newnode(p.a, N_DEF, pf, pl, pc);
n.module = p.l.module;
let id: str;
expectident(p, &id);
n.str = id;
@@ -812,6 +813,7 @@ fn parselet(p: *parser, exported: i32) *node = {
let pc: i32 = p.cur_col;
advance(p); // past `let`
let n: *node = newnode(p.a, N_LET, pf, pl, pc);
n.module = p.l.module;
let id: str;
expectident(p, &id);
n.str = id;
@@ -879,6 +881,7 @@ fn parsefn(p: *parser, exported: i32, attrs: *node) *node = {
let pc: i32 = p.cur_col;
advance(p); // past `fn`
let n: *node = newnode(p.a, N_FNDECL, pf, pl, pc);
n.module = p.l.module;
let id: str;
expectident(p, &id);
n.str = id;
@@ -908,6 +911,7 @@ fn parsetypedecl(p: *parser, exported: i32) *node = {
let pc: i32 = p.cur_col;
advance(p); // past `type`
let n: *node = newnode(p.a, N_TYPEDECL, pf, pl, pc);
n.module = p.l.module;
let id: str;
expectident(p, &id);
n.str = id;