xo-reader2: expand utest to run gc [WIP]

This commit is contained in:
Roland Conybeare 2026-03-28 09:43:43 -04:00
commit ce800d700c
3 changed files with 256 additions and 146 deletions

View file

@ -477,6 +477,10 @@ namespace xo {
DLambdaSsm::forward_children(obj<ACollector> gc) noexcept
{
gc.forward_inplace(&local_symtab_);
// explicit_return_td not gcobject
// lambda_td not gcobject
gc.forward_pivot_inplace(&body_);
gc.forward_pivot_inplace(&parent_symtab_);
}

View file

@ -913,9 +913,12 @@ namespace xo {
void
ParserStateMachine::forward_children(obj<ACollector> gc) noexcept
{
scope log(XO_DEBUG(true));
assert(!stringtable_.is_gc_eligible());
assert(!parser_alloc_.is_gc_eligible());
log && log("forward stack_");
if (stack_) {
stack_->forward_children(gc);
}
@ -923,10 +926,16 @@ namespace xo {
// static_assert(!expr_alloc_.is_gc_eligible());
// static_assert(!aux_alloc_.is_gc_eligible());
log && log("global_symtab_");
gc.forward_inplace(&global_symtab_);
log && log("local_symtab_");
gc.forward_inplace(&local_symtab_);
log && log("global_env_");
gc.forward_inplace(&global_env_);
log && log("result_");
result_.forward_children(gc);
}