|
1 | | -### Fixed |
2 | | - |
3 | | -- **`lint` is green again: two files had crossed the 2000-line cap on `main`.** |
4 | | - `crates/perry-hir/src/lower/pre_scan.rs` went 1985 → 2011 in #7828 and |
5 | | - `crates/perry-runtime/src/gc/layout.rs` went 1982 → 2010 (#7809) → 2023 |
6 | | - (#7812), so `scripts/check_file_size.sh` — and with it the whole `lint` job — |
7 | | - failed on every commit after that batch. |
8 | | - |
9 | | - Both are pure code moves with no logic change: |
10 | | - |
11 | | - - `pre_scan_weakref_locals` and its doc comment move to |
12 | | - `lower/pre_scan/weakref_locals.rs`, leaving 1653 lines behind. It is the |
13 | | - natural unit: one of the file's three top-level pre-scans, owning its own |
14 | | - five local-name sets, and the one #7828 grew. |
15 | | - - `LayoutSlotMask` — the enum and its entire `impl` — moves to |
16 | | - `gc/layout/slot_mask.rs`, leaving 1807 lines behind. Its visibility widens |
17 | | - from `pub(super)` to `pub(in crate::gc)` only because the type now sits one |
18 | | - module deeper while `layout_tables.rs` and `hot_tls.rs` still name it; the |
19 | | - set of modules that can reach it is unchanged. |
20 | | - |
21 | | - The cap is cheap to check and expensive to notice late — `bash |
22 | | - scripts/check_file_size.sh` before pushing is the whole remedy, and it is |
23 | | - already written down in CLAUDE.md's "CI gates that surprise people". |
| 1 | +**The 2,000-line file-size lint gate passes again.** The GC layout slot-mask |
| 2 | +implementation and weak-reference local pre-scan now live in dedicated modules, |
| 3 | +without behavior changes. |
0 commit comments