Extract the structural+demand classification out of main.ml's typecheck_all into `Gcinfer.infer : parsed -> symbols -> symbols`, so a single library entry point runs the whole pass. The driver calls it once (before typecheck); the unit-test helpers can call the same function, so is_gc_class classifies identically in the binary and in tests (prerequisite for removing the @gc keyword, whose tests read the golden fixtures through the library directly). - dune: gcinfer moved after owner (it now runs ownership in collect mode). - main.ml typecheck_all: the split structural-inject + post-typecheck demand loop become one `Gcinfer.infer parsed syms` call. - Documented the known demand-promotion imprecision (promotes the escaping root local's class, over-promoting the container) to refine with Phase 3. Behavior-neutral: woc-test 566/0, test_diag 14/0, oop-e2e 79/0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5 lines
237 B
Text
5 lines
237 B
Text
; compiler/src/dune — woc library (Task 2 onward adds modules per plan)
|
|
; OCaml stdlib only: no Menhir, no ppx, no opam libraries.
|
|
(library
|
|
(name woc_lib)
|
|
(modules diag token ast lexer parser types owner gcinfer emit disasm dump))
|