rust-lang / rust-lang/rust

Internal Tracking Issue for type system librarification

Open
#159,654 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

C-tracking-issue T-rust-analyzer T-types WG-trait-system-refactor
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

This is an internal tracking issue for the migration type system components into rustc_type_ir and rustc_next_trait_solver to be shared with RustAnalyzer and other users. See the dev-guide for more information.

This is mostly just a loose collection of things we should move into the shared library at some point. Please go to the the #t-types/trait-system-initiative zulip to discuss things and for mentoring opportunities. I will try to link to the relevant zulip topic for anything where it feels fairly clear what to do, while other migrations are less obvious or may interfere with work currently being done.

Specific work items
  • Move methods on Region extension traits to be inherent instead, where possible
  • uplift ty::Const similar to #154989
  • move generalization into rustc_type_ir
  • move solve/fullfil into rustc_next_trait_solver
  • move the LowerUniverseFolder into rustc_type_ir
  • move TypingEnv into rustc_type_ir
Long term goals
  • partially move InferCtxt into rustc_type_ir
  • uplift non-borrowck region handling
Implementation history

This list is very much incomplete, if you find any PRs which have been relevant here please DM @lcnr on zulip about them or add them yourself. Last updated on 2026.07.22

  • @compiler-errors #138464 #137263 #129678 #127810 #127439 #127405 #127386 #127333 #126813 #126650 #126614 #126492 #125775 #125724 #125597 #125335 #125284 #125230 #125170 #125150 #125088 #125001 #124982 #121703 #120498 #118888 #118841 #117851 #117586 #117582 #117580 #117578 #117407 #117139 #117008 #116993 #116951 #116912 #116828
  • @ChayimFriedman2 #156297 #156295 #155981 #155562 #155034 #149856 #147723 #146182 #146111 #145377
  • @Jamesbarford #160986 #154989 #156956 #157695 #154709 #154270 #150271 #149535

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the dev-guide page on sharing crates with Rust Analyzer, then use the listed checklist and the #t-types/trait-system-initiative Zulip channel to find a clearly scoped, mentored item. Done means migrating one agreed type-system component into rustc_type_ir or rustc_next_trait_solver and recording the relevant work on this tracking issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.