feat(cli): ludic build --check / ludicc --check - check without building
The parse, the types and the module rules (export, uses, layers, ports, registries) run and nothing is emitted or linked: about three seconds on Maroon Lake. In this mode the checker asks vis_check at each reference it resolves, with a global's initializer and a registry's entries seen from the files the emitter would use. Reseed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
7ef6c7ec75
commit
8892f51096
12 changed files with 15546 additions and 14721 deletions
|
|
@ -135,6 +135,7 @@ function ck_fn_body(d: Node) -> void {
|
|||
}
|
||||
function ck_listener(l: Node) -> void {
|
||||
let ev = find_event(l.s)
|
||||
ck_vis(ev, l.s, l)
|
||||
let m = ck_mark()
|
||||
if ev != null {
|
||||
var i = 0
|
||||
|
|
@ -177,7 +178,13 @@ function check_program() -> void {
|
|||
let d = prog[i]
|
||||
if d.kind == N_FN { ck_fn_body(d) }
|
||||
if d.kind == N_MAIN or d.kind == N_TEST { ck_block(d.a) }
|
||||
if (d.kind == N_VAR or d.kind == N_CONST) and d.a != null { ck_give(d.ty, ck_expr(d.a), d.a, d.s) }
|
||||
if (d.kind == N_VAR or d.kind == N_CONST) and d.a != null {
|
||||
ck_vis_file = d.file
|
||||
ck_vis_skip = d.kind == N_VAR and is_port_var(d)
|
||||
ck_give(d.ty, ck_expr(d.a), d.a, d.s)
|
||||
ck_vis_file = null
|
||||
ck_vis_skip = false
|
||||
}
|
||||
i += 1
|
||||
}
|
||||
var j = 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue