Skip to content

field_set_by_name.rs sits at exactly 2000/2000 lines — split it before the next change #7402

Description

@proggeramlug

#7401 brought the file back under the cap, but only just: it is now at exactly 2000 of 2000 allowed lines. The next line anyone adds turns lint — a required check — red on main again.

It was at 1990 before 2026-08-04, so it has been one small change away from this for some time. #7401 bought roughly nothing in headroom; it unblocked the gate, it did not fix the problem.

Why this matters more than a style cap

While lint is red, it is a required context that everyone bypasses. That is the gate-theatre pattern in its purest form: the check is required, it is failing, and nothing stops. A file parked at 100% of the cap guarantees a recurrence.

Suggested split

js_object_set_field_by_name is the bulk of it and has several clearly separable concerns:

  • the shape-transition cache fast path
  • the keys.is_null() / first-key creation path
  • the overflow-map arms
  • the class-static mirror interaction (eight call sites)
  • the descriptor/frozen/sealed guards

Any two of those moving to a sibling module buys enough headroom that the cap stops being a tripwire.

Related

The eight refresh_roots_after_alloc!() sites came from #7381/#7383. Their rationale now lives once at the macro rather than at each call site, which is the right shape and should be preserved by any split.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions