You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
crates/perry-codegen/src/lower_call.rs is 11,796 lines with only ~19 top-level functions. A sibling lower_call/ subdir already exists with builtin.rs, native.rs, ui_styling.rs — so the precedent is set, the trunk just hasn't kept moving.
Distribution of the largest functions:
lower_call — lines 642 → 3693 (~3.0k)
lower_new — lines 3693 → 4480 (~787)
apply_field_initializers_recursive — 4480 → 4759
extract_options_fields — 4759 → 11366 (~6.6k) — by far the worst
Native-module-table iteration helpers — 11439 → end
extract_options_fields is doing far more than its name suggests — it's the "look at this options object literal and decide what to do" mega-helper.
Open in a fresh file and look for the natural seams — almost certainly one branch per native API surface (fastify, ws, redis, mysql2, fs, http, child_process, etc.). Each can become a dedicated lower_call/options/<surface>.rs with a small dispatch table in lower_call/options/mod.rs. This is the largest single win on the file and the most subjective — leave room for the author to discover the right seams when they get into it.
Acceptance
Same conventions as the umbrella (#1097): pure moves, re-exports for stability, full test + parity suite green.
Activity
chore(codegen): #1099 cargo fmt the relocated lower_call/ submodules …
chore(codegen): #1099 — split lower_call.rs (pure refactor, no behavi…
fix(codegen): restore IncomingMessage __get_statusCode rows lost in #…
Merge main into pr-1146 — resolve PerryTS#1098/PerryTS#1099/PerryTS#1103