From ef582421dd602d442e09c66be107a9c43c992fd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ralph=20K=C3=BCpper?= Date: Thu, 17 Sep 2026 08:27:44 +0200 Subject: [PATCH] docs(gc): the copy-slot-hoists tests cover one hoist, not two (#10388) The module header claimed the copying minor hoists two per-parent facts, each with a sabotaged twin. Only the weak-holder fact landed; the old-generation fact was deliberately left out because no sabotage of it could be made to fail. Say so instead of claiming coverage the file does not have. --- .../src/gc/tests/copy_slot_hoists.rs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/crates/perry-runtime/src/gc/tests/copy_slot_hoists.rs b/crates/perry-runtime/src/gc/tests/copy_slot_hoists.rs index d0f1fbd172..9c295b7fe1 100644 --- a/crates/perry-runtime/src/gc/tests/copy_slot_hoists.rs +++ b/crates/perry-runtime/src/gc/tests/copy_slot_hoists.rs @@ -1,10 +1,15 @@ -//! The copying minor reads two facts once per traced object that it used to -//! re-derive for every slot of that object: whether the parent is a weak -//! holder, and whether the parent is in old-gen. +//! The copying minor reads the parent's weak-holder fact once per traced +//! object instead of re-deriving it for every slot of that object (#10362). //! -//! Both are pinned by a COLLECTION and its observable outcome, not by reading -//! the hoisted value back — and each has a sabotaged twin that forgets the -//! fact, so the hoist is shown to be load-bearing rather than merely present. +//! Pinned by a COLLECTION and its observable outcome, not by reading the +//! hoisted value back, and paired with a sabotaged twin that forgets the fact, +//! so the hoist is shown to be load-bearing rather than merely present. +//! +//! The parent's old-generation fact is deliberately NOT hoisted, so there is no +//! test for it here. No sabotage of that hoist could be made to fail: sticky +//! dirty-page coverage carries an old→young edge independently of the +//! remembered-set re-insertion the fact controls. A future hoist of it needs +//! its own witness first (#10388). use super::super::*; use super::support::*;