2023-12-01 rustc trait system refactor update

    for more information, check out the implementation tracking issue #107374, or the Trait System Refactor Initiative Issue Tracker. These updates are from my perspective and are not the official stance of the initiative. They exist to bridge the gap between major progress updates via rust-lang blog posts and the passive status tracking via the tracking issue and the initiative GitHub repository.

I forgot to write an update last friday (again). As stated in the last update, we’re getting close towards posting a blog asking for testing.

We’ve implemented most of the improvements necessary to match the existing diagnostics. This happened over multiple PRs. I first opened #118089 and #118210. With this the intercrate ambiguity cause computation now matches the old solver. @compiler-errors then opened #118346 to normalize types as much as possible before printing them in diagnostics. As the new solver does not eagerly normalize, we now have to explicitly normalize here.

I’ve spend a bunch of time experimenting with the non-fatal overflow handling. While I have a far better understanding of the design constraints now, I still don’t have a nice solution. I intend to fully documented all the conflicting requirements I’ve encountered and then chat about them with some other Types Team members during the next week. We currently discards constraints in case the current goal encountered overflow. This breaks existing code while also preventing a lot of otherwise difficult to avoid hangs.

There have also been some smaller changes; check out the full list of merged PRs.

if you find any typos or errors in this post, please pm me on zulip, discord or cohost


impressum rss