Skip to content

Splitting up rustc_typeck::check::fn_ctxt::FnCtxt #77085

Closed
@Nicholas-Baron

Description

@Nicholas-Baron

Branching this from #60302.

Originally, mod.rs for rustc_typeck::check was over 6,000 lines. I was able to push that to around 1,100 lines (PR #76906).

However, in the process, I found that FnCtxt was rather long, with 13 fields in the struct and some rather long impls attached. The sum total is 3,200 lines, which effectively means that the // ignore-tidy-filelength comment was moved from mod.rs to fn_ctxt.rs.

The goal of this issue is to

  1. Make fn_ctxt.rs smaller, at minimum less than 3,000 lines by
  2. Moving some of its functionality into "sub-structs" that will be in separate files

Unknowns to solve:

  • How do the 13 fields group into nice sub-structs
  • What to name the above mentioned sub-structs
  • How to achieve this refactoring without changing the interface of FnCtxt
    Solution: Cannot do

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-cleanupCategory: PRs that clean code up or issues documenting cleanup.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions